Tipps "n" Tricks
Betriebssysteme - Windows 98 

Last Update: 22. Juni 2001/Webmaster

Effektiveres Windows per Script-Steuerung
Thema: Windows Scripting-Host
  Mit Windows 98 führte Microsoft eine neue Technologie ein: den Windows Scripting Host (WSH). Windows erhielt damit die Fähigkeit, systemweit Scripts auszuführen - was bei anderen Betriebssystemen längst schon selbstverständlich war. Microsoft scheint dieser Technologie jedoch nicht recht zu trauen: Wie sonst ist es zu erklären, dass Windows 98 praktisch keine Dokumentation zum Scripting Host enthält? Wir zeigen Ihnen, wie Sie zum Beispiel mit VB-Script Aufgaben automatisieren können, die unter Windows sonst umständliche Klickarbeit erfordern.

Der Windows Scripting Host bietet mehr, als Microsofts Beispieldateien unter \Windows\Samples\Wsh vermuten lassen. Dort findet sich kaum eine nützliche Funktion - und die meisten Beispiele lassen sich genausogut mit Batchdateien realisieren. Die folgenden Tips eignen sich auch für Windows 95 und NT 4.0. Voraussetzung ist je-doch, dass der Internet Explorer 4.x (IE 4.01 SP1 . ) und der Scripting Host installiert sind. Den Scripting Host finden Sie im Internet unter der Adresse  (Datei WSH.EXE, 567 KB).

Neue Ordner schneller anlegen
Um einen neuen Ordner im Windows-Explorer anzulegen, müssen Sie zunächst per Rechtsklick das Kontextmenü aufrufen, hier "Neu, Ordner" auswählen und schliesslich den markierten Ordner umbenennen. Zudem müssen Sie sich vorher erst einmal bis zu dem Verzeichnis durchklicken, in dem Sie den neuen Ordner anlegen möchten.
Ein VB-Script nimmt Ihnen einen Teil dieser Arbeit ab - NORDNER.VBS:

on error resume next
Set fso = CreateObject("Scripting.FileSystemObject")
Do While OK = False
Input = InputBox("Ordnername: ")
If Input ="" Then Exit Do
If (fso.FolderExists(Input)) Then
msg = "Ordner "& Input & " existiert schon."
MsgBox (msg)
Else
Set f = fso.CreateFolder(Input)
f.Path
Exit Do
End If
Loop

NOrdner.VBS öffnet nach dem Start eine Eingabe-Box. Hier können Sie einen kompletten Pfad, beispielsweise "c:\test", eintragen. Sollte dieser Ordner schon vorhanden sein, erhalten Sie eine Fehlermeldung, und Sie können einen anderen Namen wählen. Wenn Sie nur einen neuen Ordnernamen ohne Laufwerksbezeichnung eingeben, erstellt das Script den Ordner im aktuellen Verzeichnis.
Um schnellen Zugriff auf die Funktion zu haben, sollten Sie das Script in das Kontextmenü des Explorers aufnehmen. Auch diese Aufgabe erledigt ein VB-Script. Wenn Sie die Beispieldatei NEWKEY.VBS

on error resume next
Set WSHShell =WScript.CreateObject ("WScript.Shell")
KeyNew="HKCR\AllFilesystemObjects\shell\NeuerOrdner\
  command\"
If WSHShell.RegRead(KeyNew) ="" then

'Bitte Pfad anpassen wenn das Script nicht in c:\scripts liegt

WSHShell.RegWrite KeyNew,"wscript C:\scripts\NOrdner.vbs"
MsgBox("Schlüssel wurde neu angelegt.")
else
MsgBox("Schlüssel ist schon vorhanden.")
end if

ausführen, legt das Script einen neuen Schlüssel in der Registry an. Dieser enthält den Pfad zu NORDNER.VBS. Passen Sie die Pfadangabe im Script NEWKEY.VBS an Ihre Verzeichnisstruktur an. Wenn Sie jetzt im Explorer mit der rechten Maustaste auf eine Datei oder einen Ordner klicken, finden Sie im Kontextmenü den Eintrag "NeuerOrdner auswählen".

Explorer-Funktionen per Script steuern. Mit VB-Script können Sie Explorer-Funktionen aufrufen, die Sie sonst nur über das Kontextmenü der Task-Leiste oder das Start-Menü erreichen. Auch hier benötigen Sie zunächst eine Referenz auf das Objekt, auf das Sie zugreifen wollen. Sie erstellen diese durch die Zeile

set Shell=Wscript.CreateObject
("Shell.Application")

Die Zeile

Shell.Open "<Ordnername>"
öffnet etwa das in <Ordnername> angegebene Verzeichnis im Explorer. Diese Funktionen können für Sie nützlich sein, wenn Sie beispielsweise zwei Explorer-Fenster nebeneinander anordnen wollen, um Dateien per Drag & Drop zu kopieren oder zu verschieben. Führen Sie dazu in Ihrem Script die "Shell.Open"-Anweisung zweimal aus, und ordnen Sie danach die beiden Fenster mit der Anweisung

Shell.TileVertically

neu an. Im Explorer-Objekt sind aber noch mehr interessante Befehle verborgen. Sie können etwa mit dem Script-Befehl "Shell.ShutdownWindows" Windows beenden oder über "Shell. Standby" den Standby-Modus anfordern.
Neue Funktionen aufspüren und nachrüsten. Um herauszufinden, welche Programme sich auf die eben beschriebene Weise vom Windows Scripting Host aus steuern lassen, kommen Sie ohne Zusatz-Software nicht aus. Die im folgenden genannte Software erhalten Sie kostenlos. Einen Blick in das geheime Innere der Windows-Objekte erlaubt Ihnen beispielsweise Oleview von Microsoft (Download unter , 206 KB) oder das Programm VBA-Companion unter http://www.apexsc.com/downloads/. Sie können den Scripting Host aber auch mit neuen Modulen erweitern. Im Internet finden sich zahlreiche Quellen wie http://cwashington.netreach.net oder http://wsh.glazier.co.nz. Dort gibt es unter anderem Module für die Automatisierung des DFÜ-Netzwerks, das Auswerfen von Zip-Medien und das Betrachten von Prozess-Informationen unter Windows NT.
Wenn Sie selbst Erweiterungen für den Scripting Host programmieren möchten, können Sie dazu die kostenlose "Visual Basic 5.0 Control Creation Edition" (VB5CCE) verwenden. Das ungefähr 7 MB grosse Paket finden Sie im Internet unter der Adresse http://msdn.microsoft.com/ vbasic/downloads/cce/default.asp.
Auch wenn Sie nicht selbst mit Visual Basic programmieren, kann sich der Download lohnen. Nach der Installation sind einige Automatisierungs-Objekte registriert, die Sie sonst mit dem Scripting Host nicht verwenden können. Dazu gehört beispielsweise das "Microsoft Common Dialog Control", das einem VB-Script-Programm Standard-Dialoge wie "Datei öffnen" oder "Datei speichern" zur Verfügung stellt. Ein Beispiel gibt die Datei COMDLG.VBS:

'on error resume next

'Dieses Script funktioniert nur, wenn Sie eine
'Programmiersprache wie Visual Basic CCE installiert haben

set WSHShell = wscript.CreateObject("wscript.Shell")
set objDlg = wscript.CreateObject("MSComDlg.CommonDialog")
objDlg.Filter = "All Files "& " (*.*)|*.*|VBScript Files "& " (*.vbs)|*.vbs"
objDlg.FilterIndex = 2
objDlg.MaxFileSize = 260
objDlg.CancelError = true
objDlg.ShowOpen
strFName = objDlg.Filename
WSHShell.popup strFName

 

Tipps "n" Tricks
Betriebssysteme - Windows 98