Using MSComDlg.CommonDialog to make a Directory Browser in VBScript

Hi,

I am having a problem with VBScript and the common dialog (MSComDlg.CommonDialog).
What I am trying to do is build a dialog that allows me to select a target
directory. I am trying to copy this functionality from the Microsoft Word 2003
Dialog where a user can change the default path for documents. Tools - Options -
File Locations - Documents - Modify. I know about the function  Shell.Application
- BrowseForFolder but it does look as good as the Office Dialog I want to simulate.

So really in the code below I want to make it only browse directories and
remove the file filter (Files of type:) - how can this be done. As well
I want to make it only display directories and not list any files.

Enough waffle - here is the code.

Thanks,

Ward.



Public Const ofnAllowMultiSelect = &H200
Public Const ofnCreatePrompt = &H2000
Public Const ofnFileMustExist = &H1000
Public Const ofnHideReadOnly = &H4
Public Const ofnNoNetworkButton = &H20000
Public Const ofnNoReadOnlyReturn = &H8000
Public Const ofnNoTestfileCreate = &H10000
Public Const ofnNoValidate = &H100
Public Const ofnOverwritePrompt = &H2
Public Const ofnPathMustExist = &H800
Public Const ofnReadOnly = &H1
Public Const ofnShareAware = &H4000
Public Const ofnExplorer = &H80000
Public Const ofnNochangedir = &H8

Dim oComDlg
Dim path_name
            
Set oComDlg = CreateObject("MSComDlg.CommonDialog")

path_name = ""
            
With oComDlg
            .DialogTitle = "Please select Target Directory"
            .InitDir = "C:\"
            .Filter = ""
            .FilterIndex = 0
            .MaxFileSize = 260
            .FileName = "*.*"
            .Flags = ofnPathMustExist Or ofnHideReadOnly Or ofnExplorer Or ofnNoValidate Or ofnNochangedir
            .ShowOpen
End With                        
      
path_name = Left(oComDlg.filename,InStrRev(oComDlg.filename,"\"))

If path_name = "" Then
      MsgBox "User Chose Cancel"
      wscript.quit 0
End If
      
msgbox "Path Name" & path_name



LVL 1
whorsfallAsked:
Who is Participating?
 
nayernaguibCommented:
Take a look at the following discussions:

  http://www.codecomments.com/archive293-2004-5-204943.html
  http://www.codecomments.com/archive293-2005-3-443708.html

The first says that you cannot select folders using the Common Dialog, and the second says that the MS Office 2003 dialog boxes are subclassed from the Common Dialog.

_______________

  Nayer Naguib
0
 
nayernaguibCommented:
Unfortunately, the Common Dialog component *cannot* be used to browse for folders.

_______________

  Nayer Naguib
0
 
whorsfallAuthor Commented:
Nayer,

Thanks for your answer. How is it Microsoft are able to do this with Office 2003 - it looks like a common dialog to me. If you try it you can see they can achieve the result - try changing any of the File locations win Word 2003 and you will see what I mean.

Thanks,

Ward.
0
 
nayernaguibCommented:
The dialog that appears when you use Microsoft Office 2003 is *not* the MS Common Dialog. I think MS Office applications inherit from the Common Dialog component, and add some extra functionality. If you take a closer look at the dialog box that appears when you want to modify file locations in Word 2003, you will see a "Back" button that stores the browsing history, a "Search the Web" button, and a "Tools" drop down menu.

_______________

  Nayer Naguib
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.