604
社区成员
发帖
与我相关
我的任务
分享
FUNCTION Long SHBrowseForFolder (REF BROWSEINFO lpBrowseInfo)LIBRARY "shell32.dll" ALIAS FOR "SHBrowseForFolderA"
FUNCTION Long SHGetPathFromIDList(Long pidList, REF string lpBuffer)LIBRARY "shell32.dll" ALIAS FOR "SHGetPathFromIDListA"
Type BROWSEINFO From structure
Long hOwner
Long pidlRoot
String pszDisplayName
String lpszTitle
Long ulFlags
Long lpfn
Long lParam
Long iImage
End Type
//browse filepath
Long lpIDList
String ls_FileFolderPath
//相关常量
CONSTANT Long MAX_PATH = 260
CONSTANT Long BIF_BROWSEFORCOMPUTER = 4096
CONSTANT Long BIF_BROWSEFORPRINTER = 8192
CONSTANT Long BIF_BROWSEINCLUDEFILES = 16384
CONSTANT Long BIF_BROWSEINCLUDEURLS = 128
CONSTANT Long BIF_DONTGOBELOWDOMAIN = 2
CONSTANT Long BIF_EDITBOX = 16
CONSTANT Long BIF_NEWDIALOGSTYLE = 64
CONSTANT Long BIF_RETURNFSANCESTORS = 8
CONSTANT Long BIF_RETURNONLYFSDIRS = 1
CONSTANT Long BIF_SHAREABLE = 32768
CONSTANT Long BIF_STATUSTEXT = 4
CONSTANT Long BIF_USENEWUI = 64
CONSTANT Long BIF_VALIDATE = 32
//=======================================
BrowseInfo lstr_BroInfo
//初始化文件夹浏览对话框结构
lstr_BroInfo.hOwner = Handle(Parent)
lstr_BroInfo.lpszTitle = "请选择要浏览的文件夹:"
//允许浏览计算机
lstr_BroInfo.ulFlags = BIF_BROWSEFORCOMPUTER + BIF_USENEWUI
//显示文件夹浏览对话框
lpIDList = SHBrowseForFolder(lstr_BroInfo)
ls_FileFolderPath = Space(MAX_PATH)
SHGetPathFromIDList(lpIDList, ls_FileFolderPath)
IF lpIDList <> 0 THEN
messagebox('',ls_FileFolderPath)
end if