VBScript Scripting Techniques > User Interaction > File Open Dialog
| UserAccounts.CommonDialog | |
|---|---|
| VBScript Code: | |
|
WScript.Echo "Selected file: " & GetFileName( "C:\", "" ) WScript.Echo "Selected file: " & GetFileName( "", "Text files|*.txt" ) WScript.Echo "Selected file: " & GetFileName( "", "MS Office documents|*.doc;*.xls;*.pps" ) WScript.Echo "Selected file: " & GetFileName( "C:\WINDOWS", "Bitmaps|*.bmp" ) Function GetFileName( myDir, myFilter ) ' This function opens a File Open Dialog and returns the ' fully qualified path of the selected file as a string. ' ' Arguments: ' myDir is the initial directory; if no directory is ' specified "My Documents" is used; ' NOTE: this default requires the WScript.Shell ' object, and works only in WSH, not in HTAs! ' myFilter is the file type filter; format "File type description|*.ext" ' ALL arguments MUST get A value (use "" for defaults), OR otherwise you must ' use "On Error Resume Next" to prevent error messages. ' ' Dependencies: ' Requires NUSRMGRLib (nusrmgr.cpl), available in Windows XP and later. ' To use the default "My Documents" WScript.Shell is used, which isn't ' available in HTAs. ' ' Written by Rob van der Woude ' http://www.robvanderwoude.com ' Standard housekeeping Dim objDialog ' Create a dialog object Set objDialog = CreateObject( "UserAccounts.CommonDialog" ) ' Check arguments and use defaults when necessary If myDir = "" Then ' Default initial folder is "My Documents" objDialog.InitialDir = CreateObject( "WScript.Shell" ).SpecialFolders( "MyDocuments" ) Else ' Use the specified initial folder objDialog.InitialDir = myDir End If If myFilter = "" Then ' Default file filter is "All files" objDialog.Filter = "All files|*.*" Else ' Use the specified file filter objDialog.Filter = myFilter End If ' Open the dialog and return the selected file name If objDialog.ShowOpen Then GetFileName = objDialog.FileName Else GetFileName = "" End If End Function |
|
| Requirements: | |
| Windows version: | Windows XP, Server 2003 or Vista |
| Network: | N/A |
| Client software: | N/A |
| Script Engine: | any (WSH if using default for directory) |
| Additional options: |
objDialog.Filter = "MS Office files|*.doc;*.xls;*.pps|Text files|*.txt|All files|*.*" |
| Summarized: | Works in Windows XP or later. If used in HTAs, the initial directory must be specified. Doesn't work in Windows 95, 98, ME, NT 4, or 2000. |
![]() |
|
| [Back to the top of this page] | |
| SAFRCFileDlg.FileOpen | |
| VBScript Code: | |
|
Set objDialog = CreateObject( "SAFRCFileDlg.FileOpen" ) ' Note: The dialog will be opened without any file name or ' type filter, and in the "current" directory, e.g. as ' remembered from the last "SAFRCFileDlg.FileOpen" or ' "SAFRCFileDlg.FileSave" dialog! If objDialog.OpenFileOpenDlg Then WScript.Echo "objDialog.FileName = " & objDialog.FileName End If |
|
| Requirements: | |
| Windows version: | Windows XP |
| Network: | N/A |
| Client software: | N/A |
| Script Engine: | any |
| Summarized: | Works in all Windows XP versions. Doesn't work in Windows 95, 98, ME, NT 4, and 2000, not sure about Windows Server 2003 or Vista. |
![]() |
|
| [Back to the top of this page] | |