home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2004 November / PCWELT_11_2004.ISO / pcwsoft / pcwExpand.z.exe / pcwExpand.vbs
Encoding:
Text File  |  2004-08-13  |  5.1 KB  |  100 lines

  1. Set MyShell = CreateObject("Wscript.Shell")
  2. Set MyFiles = CreateObject("Scripting.FileSystemObject")
  3. Set umgebung=MyShell.Environment("PROCESS")
  4. windir=umgebung("windir")
  5. temp=umgebung("temp")
  6.  
  7. 'Hauptroutine
  8. If (myfiles.FileExists(windir & "\DelExpand.reg")) Then
  9.     Loeschen
  10. Else
  11.     Anlegen
  12. End If
  13.  
  14. 'Neue EintrΣge in den Kontextmenⁿs eintragen
  15. 'Makecab unter *, also fⁿr alle Dateitypen
  16. 'Expand und Expand von CD nur fⁿr den Unknown-Dateityp und alle registrierten Dateitypen mit einem _ als letztes Zeichen der Endung
  17. Function Anlegen()
  18. Set RegBatch = Myfiles.OpenTextFile( temp & "\Regbatch.bat", 2, True)
  19. Regbatch.Writeline "regedit /a " & Chr(34) & "%temp%\Classes.txt" & Chr(34) & " HKEY_CLASSES_ROOT"
  20. Regbatch.Writeline "findstr /i  /r " &  Chr(34) & "HKEY_CLASSES_ROOT...._]" & Chr(34)   & " " &  Chr(34) & temp & "\Classes.txt" &Chr(34) & " > " & Chr(34) & temp & "\Keys.txt" & Chr(34)
  21. Regbatch.Close
  22. Batcher = MyShell.Run("cmd /c " & temp & "\Regbatch.bat", 1, True)
  23. Set KnownKeys = Myfiles.OpenTextFile(temp & "\Keys.txt", 1, False)
  24. Set RegExp = Myfiles.OpenTextFile(windir & "\Expand.reg", 2, True)
  25. Set RegDelExp = Myfiles.OpenTextFile(windir & "\DelExpand.reg", 2, True)
  26. RegExp.Writeline "Windows Registry Editor Version 5.00"
  27. RegExp.Writeline ""
  28. RegExp.Writeline "[HKEY_CLASSES_ROOT\*\shell\Makecab\command]"
  29. RegExp.Writeline "@=hex(2):63,00,6d,00,64,00,20,00,2f,00,63,00,20,00,25,00,73,00,79,00,73,00,74,\"
  30. RegExp.Writeline "  00,65,00,6d,00,72,00,6f,00,6f,00,74,00,25,00,5c,00,53,00,79,00,73,00,74,00,\"
  31. RegExp.Writeline "  65,00,6d,00,33,00,32,00,5c,00,4d,00,41,00,4b,00,45,00,43,00,41,00,42,00,20,\"
  32. RegExp.Writeline "  00,22,00,25,00,31,00,22,00,20,00,2f,00,56,00,33,00,00,00"
  33. RegExp.Writeline ""
  34. RegExp.Writeline "[HKEY_CLASSES_ROOT\Unknown\shell\Expand\command]"
  35. RegExp.Writeline "@=hex(2):63,00,6d,00,64,00,20,00,2f,00,63,00,20,00,25,00,73,00,79,00,73,00,74,\"
  36. RegExp.Writeline "  00,65,00,6d,00,72,00,6f,00,6f,00,74,00,25,00,5c,00,53,00,79,00,73,00,74,00,\"
  37. RegExp.Writeline "  65,00,6d,00,33,00,32,00,5c,00,65,00,78,00,70,00,61,00,6e,00,64,00,2e,00,65,\"
  38. RegExp.Writeline "  00,78,00,65,00,20,00,2d,00,72,00,20,00,22,00,25,00,31,00,22,00,00,00"
  39. RegExp.Writeline ""
  40. RegExp.Writeline "[HKEY_CLASSES_ROOT\Unknown\shell\Expand von CD\command]"
  41. RegExp.Writeline "@=hex(2):63,00,6d,00,64,00,20,00,2f,00,63,00,20,00,25,00,73,00,79,00,73,00,74,\"
  42. RegExp.Writeline "  00,65,00,6d,00,72,00,6f,00,6f,00,74,00,25,00,5c,00,53,00,79,00,73,00,74,00,\"
  43. RegExp.Writeline "  65,00,6d,00,33,00,32,00,5c,00,65,00,78,00,70,00,61,00,6e,00,64,00,2e,00,65,\"
  44. RegExp.Writeline "  00,78,00,65,00,20,00,2d,00,72,00,20,00,22,00,25,00,31,00,22,00,20,00,22,00,\"
  45. RegExp.Writeline "  25,00,74,00,65,00,6d,00,70,00,25,00,22,00,00,00"
  46. RegExp.Writeline ""
  47.  
  48. RegDelExp.Writeline "Windows Registry Editor Version 5.00"
  49. RegDelExp.Writeline ""
  50. RegDelExp.Writeline "[-HKEY_CLASSES_ROOT\*\shell\Makecab]"
  51. RegDelExp.Writeline ""
  52. RegDelExp.Writeline "[-HKEY_CLASSES_ROOT\Unknown\shell\Expand]"
  53. RegDelExp.Writeline ""
  54. RegDelExp.Writeline "[HKEY_CLASSES_ROOT\Unknown\shell\Expand von CD]"
  55. RegDelExp.Writeline ""
  56.  
  57. Do
  58.     Zeile = KnownKeys.Readline
  59.     ExpZeile = Replace(Zeile, "]", "\shell\Expand]")
  60.     CDExpZeile = Replace(Zeile, "]", "\shell\Expand von CD]")
  61.     ExpZeile = Replace(ExpZeile, "[", "[-")
  62.     CDExpZeile = Replace(CDExpZeile, "[", "[-")
  63.     ExpZ = Replace(Zeile, "]", "\shell\Expand\command]")
  64.     CDExpZ = Replace(Zeile, "]", "\shell\Expand von CD\command]")
  65.     RegExp.Writeline ExpZ
  66.     RegExp.Writeline "@=hex(2):63,00,6d,00,64,00,20,00,2f,00,63,00,20,00,25,00,73,00,79,00,73,00,74,\"
  67.     RegExp.Writeline "  00,65,00,6d,00,72,00,6f,00,6f,00,74,00,25,00,5c,00,53,00,79,00,73,00,74,00,\"
  68.     RegExp.Writeline "  65,00,6d,00,33,00,32,00,5c,00,65,00,78,00,70,00,61,00,6e,00,64,00,2e,00,65,\"
  69.     RegExp.Writeline "  00,78,00,65,00,20,00,2d,00,72,00,20,00,22,00,25,00,31,00,22,00,00,00"
  70.     RegExp.Writeline ""
  71.     RegExp.Writeline CDExpZ
  72.     RegExp.Writeline "@=hex(2):63,00,6d,00,64,00,20,00,2f,00,63,00,20,00,25,00,73,00,79,00,73,00,74,\"
  73.     RegExp.Writeline "  00,65,00,6d,00,72,00,6f,00,6f,00,74,00,25,00,5c,00,53,00,79,00,73,00,74,00,\"
  74.     RegExp.Writeline "  65,00,6d,00,33,00,32,00,5c,00,65,00,78,00,70,00,61,00,6e,00,64,00,2e,00,65,\"
  75.     RegExp.Writeline "  00,78,00,65,00,20,00,2d,00,72,00,20,00,22,00,25,00,31,00,22,00,20,00,22,00,\"
  76.     RegExp.Writeline "  25,00,74,00,65,00,6d,00,70,00,25,00,22,00,00,00"
  77.     RegExp.Writeline ""
  78.     RegDelExp.Writeline ExpZeile
  79.     RegDelExp.Writeline ""
  80.     RegDelExp.Writeline CDExpZeile
  81.     RegDelExp.Writeline ""
  82. loop until KnownKeys.AtEndOfStream = True
  83. KnownKeys.close
  84. RegExp.close
  85. RegDelExp.close
  86. myfiles.DeleteFile temp & "\Classes.txt"
  87. myfiles.DeleteFile temp & "\Keys.txt"
  88. myfiles.DeleteFile temp & "\Regbatch.bat"
  89. RegRegister=MyShell.Run("regedit /s " & windir & "\Expand.reg", 0, True)
  90. MsgBox "Expand und Makecab wurden in den Kontextmenⁿs angelegt"
  91. End Function
  92.  
  93. 'Kontextmenⁿ-EintrΣge l÷schen
  94. Function Loeschen()
  95. RegRegister=MyShell.Run("regedit /s " & windir & "\DelExpand.reg", 0, True)
  96. myfiles.DeleteFile windir & "\Expand.reg"
  97. myfiles.DeleteFile windir & "\DelExpand.reg"
  98. MsgBox "Expand und Makecab wurden aus den Kontextmenⁿs entfernt"
  99. End Function
  100.