'************************************************ ' File:Dialog.vbs (WSH sample in VBScript) ' Author:(c) G. Born ' ' Using the shell dialog box to select a folder '************************************************ Option Explicit ' Flags for the options parameter Const BIF_returnonlyfsdirs = &H0001 Const BIF_dontgobelowdomain= &H0002 Const BIF_statustext = &H0004 Const BIF_returnfsancestors= &H0008 Const BIF_editbox= &H0010 Const BIF_validate = &H0020 Const BIF_browseforcomputer= &H1000 Const BIF_browseforprinter = &H2000 Const BIF_browseincludefiles = &H4000 Dim wsh, objDlg, objF ' Get Application object of the Windows shell. Set objDlg = WScript.CreateObject("Shell.Application") ' Use the BrowseForFolder method. ' For instance: Set objF = objDlg.BrowseForFolder _ ' (&H0, "Select the folder to copy", &H10, "C:/Born") Set objF = objDlg.BrowseForFolder (&H0, _ "Select the folder to copy", _ BIF_editbox + BIF_returnonlyfsdirs) ' Here we use the first method to detect the result. If IsValue(objF) Then MsgBox "Selected folder: " & objF.Title Else MsgBox "Canceled" End If
' Here we use TypeName to detect the result. If InStr(1, TypeName(objF), "Folder") > 0 Then MsgBox "Selected folder: " & objF.Title Else MsgBox "Canceled" End If
Function IsValue(obj) ' Check whether the value has been returned. Dim tmp On Error Resume Next tmp = " " & obj If Err <> 0 Then IsValue = False Else IsValue = True End If On Error GoTo 0 End Function