SolidWorks macro directory question
SolidWorks macro directory question
(OP)
Is there a way of selecting a directory in a SolidWorks macro?
I want the user to select a directory batch open and save a pdf copy to another directory. I can do every thing but the directory part.
I have done a similar prog in excel with the getfileopen method but SW doesent have this.
The only option left is to use SW working directory but I don’t like this.
I
I want the user to select a directory batch open and save a pdf copy to another directory. I can do every thing but the directory part.
I have done a similar prog in excel with the getfileopen method but SW doesent have this.
The only option left is to use SW working directory but I don’t like this.
I






RE: SolidWorks macro directory question
Try <http://www.allapi.net>
RE: SolidWorks macro directory question
CODE
'Windows 95 Shell API to use the browse for folders
'dialog box. To use the browse for folders dialog box,
'please call the BrowseForFolders function using the
'syntax: stringFolderPath=BrowseForFolders(Hwnd,TitleOfDialog)
'
'For contacting information, see other module
Option Explicit
Public Type BrowseInfo
hwndOwner As Long
pIDLRoot As Long
pszDisplayName As Long
lpszTitle As Long
ulFlags As Long
lpfnCallback As Long
lParam As Long
iImage As Long
End Type
Public Const BIF_RETURNONLYFSDIRS = 1
Public Const MAX_PATH = 260
Public Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal hMem As Long)
Public Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long
Public Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
Public Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long
Public Function BrowseForFolder(hwndOwner As Long, sPrompt As String) As String
'declare variables to be used
Dim iNull As Integer
Dim lpIDList As Long
Dim lResult As Long
Dim sPath As String
Dim udtBI As BrowseInfo
'initialise variables
With udtBI
.hwndOwner = hwndOwner
.lpszTitle = lstrcat(sPrompt, "")
.ulFlags = BIF_RETURNONLYFSDIRS
End With
'Call the browse for folder API
lpIDList = SHBrowseForFolder(udtBI)
'get the resulting string path
If lpIDList Then
sPath = String$(MAX_PATH, 0)
lResult = SHGetPathFromIDList(lpIDList, sPath)
Call CoTaskMemFree(lpIDList)
iNull = InStr(sPath, vbNullChar)
If iNull Then sPath = Left$(sPath, iNull - 1)
End If
'If cancel was pressed, sPath = ""
BrowseForFolder = sPath
End Function
'sample usage in form
Private Sub cmdServerBrowse_Click()
txtDatabasePath.Text = BrowseForFolder(me.hwnd, "Please select a Server folder.")
End Sub
RE: SolidWorks macro directory question
I have been trying to figure this out for a long time.
I dont think I would have got there on my own
RE: SolidWorks macro directory question
RE: SolidWorks macro directory question
-handleman, CSWP (The new, easy test)
RE: SolidWorks macro directory question
RE: SolidWorks macro directory question
-handleman, CSWP (The new, easy test)
RE: SolidWorks macro directory question
RE: SolidWorks macro directory question
RE: SolidWorks macro directory question
-handleman, CSWP (The new, easy test)
RE: SolidWorks macro directory question
Matt Lorono
CAD Engineer/ECN Analyst
Silicon Valley, CA
Lorono's SolidWorks Resources
Co-moderator of Solidworks Yahoo! Group
and Mechnical.Engineering Yahoo! Group
RE: SolidWorks macro directory question
How can I let my user select a directory/folder (not a file) through a browse type dialog in VBA.
Answer by TheTick:
You have to use Windows API to select a directory/folder.
New question by dogarila (summed up from several clarifying posts):
How can I let my user select a file using VB6
New answer:
Use the Common Dialog if you have VB6.
Alternate new answer:
Reference Excel library in your AutoCAD VBA macro and steal its GetOpenFileName functionality. For an example, see thread559-215560: How can you use a text editor to determin SolidWorks File Version
-handleman, CSWP (The new, easy test)
RE: SolidWorks macro directory question
I found the help I needed here:
http://www