22
Февраль
2009
Выбор папки
Выбор папки.
Форма:
Option Explicit
Dim udtBrowseInfo As BROWSEINFO, pid As Long
Dim path As String
Private Sub Form_Load()
With udtBrowseInfo
.hOwner = Me.hWnd
.lpszTitle = "Выберите папку и получите путь к ней"
.ulFlags = BIF_RETURNONLYFSDIRS
End With
pid = SHBrowseForFolder(udtBrowseInfo)
path = Space(260)
SHGetPathFromIDList ByVal pid, ByVal path
Debug.Print Left$(path, InStr(1, path, Chr(0)) - 1)
End
End Sub
Модуль:
Option Explicit
Declare Function SHBrowseForFolder Lib "shell32.dll" _
Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
Declare Function SHGetPathFromIDList Lib "shell32.dll" _
Alias "SHGetPathFromIDListA" (ByVal pidl As Long, _
ByVal pszPath As String) As Long
Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
Public Const BIF_RETURNONLYFSDIRS = &H1