?
Solved

Using MSComDlg.CommonDialog to make a Directory Browser in VBScript

Posted on 2006-04-11
6
Medium Priority
?
11,036 Views
Last Modified: 2012-06-27
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



0
Comment
Question by:whorsfall
  • 3
4 Comments
 
LVL 14

Expert Comment

by:nayernaguib
ID: 16433059
Unfortunately, the Common Dialog component *cannot* be used to browse for folders.

_______________

  Nayer Naguib
0
 
LVL 1

Author Comment

by:whorsfall
ID: 16434040
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
 
LVL 14

Expert Comment

by:nayernaguib
ID: 16435218
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
 
LVL 14

Accepted Solution

by:
nayernaguib earned 2000 total points
ID: 16435256
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

Featured Post

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This is about my first experience with programming Arduino.
In this post we will learn how to make Android Gesture Tutorial and give different functionality whenever a user Touch or Scroll android screen.
Simple Linear Regression
Introduction to Processes

862 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question