Как выбрать папку только при помощи управления стандартным диалогом

При загрузке блока (DLL, EXE, и т.д.) в Отражатель , он скажет Вам полное строгое имя внизу.

8
задан Gopal 18 October 2009 в 04:55
поделиться

2 ответа

Прошло некоторое время с тех пор, как мне приходилось выполнять какую-либо базовую визуальную работу, но я думаю, что вместо использования общего диалогового окна для получения имени файла для открытия вы должны использовать SHBrowseForFolder , которая уже является частью Windows API. Вот ссылка на страницу, описывающую его использование.

Обновление (2017): предоставленная ссылка не работает, но резервную копию можно просмотреть на archive.org

8
ответ дан 5 December 2019 в 09:26
поделиться

Чтобы выбрать папку, вы можете использовать компонент оболочки и автоматизации.

Private shlShell As Shell32.Shell
Private shlFolder As Shell32.Folder
Private Const BIF_RETURNONLYFSDIRS = &H1

Private Sub Command1_Click()
    If shlShell Is Nothing Then
        Set shlShell = New Shell32.Shell
    End If
    Set shlFolder = shlShell.BrowseForFolder(Me.hWnd, "Select a Directory", BIF_RETURNONLYFSDIRS)
    If Not shlFolder Is Nothing Then
        MsgBox shlFolder.Title
    End If
End Sub

Вам нужно будет добавить ссылка на shell32.dll в вашем проекте. Используйте меню Project / References ..., а затем найдите shell32.dll .

Или вы можете использовать Windows API, как предлагает Twotymz.

7
ответ дан 5 December 2019 в 09:26
поделиться