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


Оставить комментарий

Я не робот.