Hey Group,
One function that is exposed in the shell.application is browseforfolder.
Code:
; LISP syntax (browseforfolder "Select Folder" "C:\\acad")
(defun BrowseForFolder (strMessage
strRootFolder
/
lstObjects
objShellApp
objFolder
objParentFolder
strPath
)
(and
(setq objShellApp (vla-getInterfaceObject
(vlax-get-acad-object)
"Shell.Application"
)
)
(setq lstObjects (list objShellApp))
(setq objFolder (vlax-invoke objShellApp
'BrowseForFolder
0
strMessage
0
strRootFolder
)
)
(setq lstObjects (cons objFolder lstObjects))
(setq strTitle (vlax-get objFolder "Title"))
(setq objParentFolder (vlax-get objFolder 'ParentFolder))
(setq lstObjects (cons objParentFolder lstObjects))
(setq strPath (vlax-get (vlax-invoke objParentFolder "Parsename" strTitle) "Path"))
)
(mapcar 'vlax-release-object lstObjects)
strPath
)
But it does not allow you to pre select a selectedfolder.
.NET has a browsefolderdialog that gives you more options including the ability to selectfolder.
See next post.