Dialog mit Baumstruktur zur Ordnerauswahl verwenden

In Ihren VBScript-Anwendungen verwenden Sie bisher den Befehl »InputBox()«. Darüber können Anwender einen Ordner auswählen, allerdings müssen Sie dazu den kompletten Pfad eintippen. Dies möchten Sie komfortabler gestalten, am besten mit einem Dialog, in dem sich die Verzeichnisse in einer Baumdarstellung auswählen lassen.

Ab der Version Windows 2000 klappt dies mit der Funktion »selectFolder()«. Um diese in Ihren VBScript-Programmen verwenden zu können, fügen Sie folgenden Code am Ende Ihres Programmtextes ein:

function selectFolder() 

Dim objShell, objFolderDlg
On Error Resume Next
Set objShell = Wscript.CreateObject(„Shell.Application“)
Set objFolderDlg = objShell.BrowseForFolder (&H0, „Ordner auswählen“, &H0)
selectFolder=objFolderDlg.ParentFolder.ParseName(objFolderDlg.Title).Path
end function
Danach können Sie die Funktion beispielsweise wie folgt verwenden:
szFolder=selectFolder()

if not szFolder = „“ then
MsgBox szFolder
else
MsgBox „Es wurde kein Ordner ausgewählt!“
end if
Nach dem Aufruf von »selectFolder()« wird zunächst geprüft, ob der Rückgabewert leer ist. Dieser Fall tritt auf, wenn der Anwender keinen Ordner auswählt und auf »Abbrechen« klickt. In der Funktion »selectFolder()« macht das Skript in diesem Fall via »On Error Resume Next« einfach mit dem nächsten Befehl weiter. Sonst würde ein Laufzeitfehler auftreten, wenn das Programm keinen ausgewählten Ordner ermitteln kann.

Die Funktion »objShell.BrowseForFolder« besitzt drei erforderliche sowie einen vierten, optionalen Aufrufparameter. Der erste Parameter enthält das Handle auf ein Fenster. Da der Windows Scripting Host selbst keine Fenster verwaltet, setzen Sie diesen Wert immer auf Null. Geben Sie dazu die Zeichenfolge »&H0« ein. Der zweite Parameter definiert den Text unter der Titelzeile des Dialoges. Mit dem dritten Parameter sollte zum Beispiel die OK-Schaltfläche gesperrt werden können. Allerdings funktioniert er abhängig von der Windows-Version nur unzuverlässig oder gar nicht. Da er aber zwingend vorhanden sein muss, setzen Sie ihn mit »&H0« ebenfalls auf Null. Im optionalen vierten Parameter können Sie angeben, welches Wurzelverzeichnis der Dialog nach dem Start öffnen soll.