home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2004 March / PCWELT_3_2004.ISO / pcwsoft / pcwMulticopy.z.exe / pcwMulticopy.vbs
Encoding:
Text File  |  2003-12-05  |  3.7 KB  |  110 lines

  1. Set myfiles = CreateObject("Scripting.FileSystemObject")
  2. Set myshell = CreateObject("Wscript.Shell")
  3. Set Appshell = CreateObject("Shell.Application")
  4. Set Dict = CreateObject("Scripting.Dictionary")
  5. Set umgebung=MyShell.Environment("PROCESS")
  6. Set arg=wscript.arguments
  7. on error resume next
  8.  
  9. 'Deklarationen
  10. Dim Ordner()
  11. Datei = arg(0)
  12. windir=umgebung("windir")
  13. installpath=windir & "\pcwMulticopy.vbs"
  14. neu="wscript.exe " & windir & "\pcwMulticopy.vbs " & chr(34) & "%1" & chr(34)
  15.  
  16. '(De-)Installationsroutine
  17. If Datei = "" then
  18.     a = myshell.regread("HKEY_CLASSES_ROOT\*\Shell\Multicopy\Command\")
  19.     If a="" Then
  20.         pcwscript=wscript.scriptfullname
  21.         Set pcwcopy=MyFiles.GetFile(pcwscript)
  22.         pcwcopy.copy(installpath)
  23.         myshell.regwrite("HKEY_CLASSES_ROOT\*\Shell\Multicopy\Command\"), neu
  24.         myshell.regwrite("HKEY_CLASSES_ROOT\Directory\Shell\Multicopy\Command\"), neu
  25.         MsgBox "Der mehrfach Kopierer wurde installiert"
  26.         wscript.quit
  27.     Else
  28.         do
  29.         ZL = myshell.regread("HKEY_CURRENT_USER\Software\PC-WELT\pcwMulticopy\")
  30.         ZL = Replace(ZL, ",", vbcr)
  31.         res = MsgBox("Wollen Sie einen Zielordner hinzufⁿgen (Ja) oder den mehrfach Kopierer de-installieren (nein)" & VBCR & VBCR & "Folgende Ordner sind bereits eingebunden:" & VBCR & ZL, 35, "Erweitern/de-installieren")
  32.         If res = 7 then
  33.             Weg=Myfiles.Deletefile(installpath, true)
  34.             myshell.regdelete("HKEY_CLASSES_ROOT\*\Shell\Multicopy\Command\")
  35.             myshell.regdelete("HKEY_CLASSES_ROOT\*\Shell\Multicopy\")
  36.             myshell.regdelete("HKEY_CLASSES_ROOT\Directory\Shell\Multicopy\Command\")
  37.             myshell.regdelete("HKEY_CLASSES_ROOT\Directory\Shell\Multicopy\")
  38.             myshell.regdelete("HKEY_CURRENT_USER\Software\PC-WELT\pcwMulticopy\")
  39.             MsgBox "Der mehrfach Kopierer wurde de-installiert"
  40.             wscript.quit
  41.         ElseIf res = 6 Then
  42.             Set AppFolder = Appshell.BrowseForFolder(0, "",  &H0001, 17)
  43.             Ordn = AppFolder.ParentFolder.ParseName(AppFolder.Title).Path
  44.             If err.number > 0 then 
  45.                 i=instr(AppFolder, ":")
  46.                 Ordn = mid(AppFolder, i - 1, 1) & ":"
  47.             end If
  48.             If not Ordn = "" then
  49.                 liste = myshell.regread("HKEY_CURRENT_USER\Software\PC-WELT\pcwMulticopy\")
  50.                 liste = Ordn & "," & liste
  51.                 myshell.regwrite("HKEY_CURRENT_USER\Software\PC-WELT\pcwMulticopy\"), Liste
  52.             End if
  53.             
  54.         Else
  55.             wscript.quit
  56.         End If
  57.         loop
  58.     End If
  59. End If
  60.  
  61. 'Zielordnerliste auslesen
  62. liste = myshell.regread("HKEY_CURRENT_USER\Software\PC-WELT\pcwMulticopy\")
  63. If liste = "" Then 
  64.     MsgBox "Bitte legen Sie zunΣchst ein Zielordnerliste an, indem Sie das Script noch einmal direkt aufrufen"
  65.     wscript.quit
  66. End If
  67.  
  68. 'Zielorderliste in ein Array schreiben
  69. x = y = z = 0
  70. Do
  71.     y = InStr(x+1, Liste, ",")
  72.     Ord = Mid(Liste, x+1, y-x-1)
  73.     z = z+1
  74.     ReDim Preserve Ordner(z)
  75.     Ordner(z) = Ord
  76.     x=y
  77. loop until y >= Len(Liste)
  78.  
  79. 'Unterscheidung zwischen Quelldatei und Ordner
  80. if (myfiles.FolderExists(Datei)) Then
  81.     Set Dat = myfiles.GetFolder(Datei)
  82.     obj = "Der Ordner"
  83. ElseIf (myfiles.FileExists(Datei)) Then
  84.     Set Dat = myfiles.GetFile(Datei)
  85.     obj = "Die Datei"
  86. Else
  87.     MsgBox "Das Quellobjekt ist ungⁿltig, bitte wΣhlen Sie eine Datei oder ein Verzeichnis aus"
  88.     wscript.quit
  89. End if
  90. n = 1
  91.  
  92. 'Kopieren in die einzelnen Zielverzeichnisse
  93. Do
  94. err.number = 0 
  95.     If (myfiles.FolderExists(Ordner(n))) Then
  96.         a = Dat.Copy(Ordner(n) & "\", True)
  97.         If err.number > 0 Then
  98.             nolist = nolist & VBCR & Ordner(n)
  99.         Else
  100.             yeslist = yeslist & VBCR & Ordner(n)
  101.         End if
  102.     Else
  103.         nolist = nolist & VBCR & Ordner(n)
  104.     End If
  105.     n = n+1
  106. Loop until Ordner(n) = ""
  107.  
  108. 'Ergebnisdialog
  109. res = MsgBox(obj & " wurde in folgende Ordner kopiert:" & VBCR & yeslist & VBCR & VBCR & obj & " konnte nicht in folgende Ordner kopiert werden:" & VBCR & nolist, 0, "Ergebnis")
  110. yeslist = nolist = ""