Name:         MakeUnzipFolder.vbs

Lizenz:       Dieses Skript steht zur freien Verfgung, da ich selbst
              die erforderlichen Informationen und Routinen aus freien 
              Quellen bezogen habe.
              
Plattform:    Getestet unter Windows XP und Vista.

Sprache:      VB-Script.

IDE:          VbsEdit 3.4.1.6   http://www.vbsedit.com

Dateien:      MakeUnzipFolder.vbs     : Das Script
              Readme.txt              : Beschreibung
              MakeUnzipFolder.pdf     : Source + Readme

Disclaimer:   Die Anwendung des Scripts erfolgt auf eigene Gefahr.
              Da das Script zur freien Verfgung steht,
              kann ich keinen Support geben.
              Fr konstruktive Kritik sowie Anregungen oder
              Verbesserungsvorschlge bin ich immer offen. 

Voraussetzung:Die Windowseigene Zip-Funktion muss aktiviert und
              funktionstchtig sein. 

Beschreibung: Das Skript wurde fr das Plugin "OnTheFlyUnzipper" des
              Windows-Home-Servers konzipiert.
              Dieses Plugin berwacht angegebene Ordner ob eine
              Zip-Datei mit der Erweiterung "unzip_<Dateiname>.zip"
              hinzugefgt wurde und Dekomprimiert diese automatisch.
              
              Um die Erstellung einer Zip-Datei mit der Erweiterung
              "unzip_" zu vereinfachen habe ich dieses Skript
              programmiert.

              Das Skript kopiert die bergebenen Datei(en) / Ordner
              mit der Windowseigenen Zip-Funktionalitt in einen
              Zip-Komprimierten Ordner mit der Erweiterung "unzip_".
              Hierzu wird der Datei- bzw. Ordner-Name der ersten Datei
              fr den neuen Zip-Ordner verwendet.
              
              Fr eine effektive Benutzung, empfiehlt es sich, eine
              Verknpfung im "Kontextmen - Senden An" anzulegen.
              
              Windows-XP:
              C:\Dokumente und Einstellungen\USERNAME\SendTo
                            
              Windows-Vista:
              C:\Users\USERNAME\AppData\Roaming\Microsoft\Windows\SendTo
              
Technisches:  Da die "zipfldr.dll" welche fr die windowseigene 
              Zip-Funktion zustndig ist, nicht direkt angesprochen
              werden kann, muss der Umweg ber das "Shell-Application"-
              Objekt benutzt werden.
              
              Zuerst wird mit der Funktion "getDestination(strSource)"
              der neue Pfad mit Dateiname aus dem ersten bergebenen
              Parameter erstellt.
              
              Wurde der Pfad erfolgreich erstellt, wird mit der
              Prozedur "CreateZipFile(strFile)" eine leere Zip-Datei,
              mit dem erforderlichen Header, im Selben Pfad wie die
              Quelldatei erstellt.
              
              Nach dem erfolgreichen erstellen der Zieldatei,
              werden die bergebenen Dateien bzw. Ordner in der Prozedur
              "ZipFolder(arrSource, strDestination)" mit Hilfe des 
              "Shell-Application-Objektes" in dise kopiert.
              Da die Filter fr Dateien und Ordner ber das 
              "Shell-Application-Objekt" unterschiedlich angesprochen 
              werden, mu dieses fr jede Datei bzw. Ordner durch die 
              Funktion "IsFolder(strPath)" oder "IsFile(strPath)" 
              berprft werden.
              
              Der Filter sorgt auerdem dafr, dass auch versteckte
              Dateien kopiert werden, da das "Shell-Application-Objekt"
              diese standartmig nicht bercksichtigt.
              
              ber die Prozedur "CheckBusy(intTime)" wird in den
              angegebenen Zeitabstnden berprft, ob der
              Komprimierungsprozess fr die aktuelle Datei bzw. den
              aktuellen Ordner abgeschlossen ist.
              Dies ist notwendig, da das Script ansonnsten sofort mit
              der nchsten Datei bzw. dem nchsten Ordner fortfahren
              wrde, was zu Fehlern fhrt.
              
              Wurden alle Dateien bzw Ordner Komprimiert, erfolgt eine
              Erfolgsmeldung. Diese kann durch setzen der Konstante
              "Message" auf "False" auch unterdrckt werden.
              
 Anmerkung:   Die Komrimierung erfolgt etwas langsamer, als bei der 
              original Zip-Funktion, was aber durch die sonst ntige
              Ubenennung der erstellten Zip-Datei nicht wesentlich ins
              Gewicht fllt.
              Ich habe den Code so gut es geht kommentiert, so dass
              auch Anfnger bzw. Unerfahrene Benutzer sich schnell
              zurechtfinden sollten und das Script den eigenen
              Bedrfnissen anpassen knnen.
              Das Schript soll auch Anregung geben diese Funktionallitt
              bei Zip-Tools anderer Hersteller wie z.B. "WinZip" oder
              "7-Zip" zu implementieren.
              
              
              
              
              
              
              
              