Страница: 1 |
Страница: 1 |
Вопрос: Диалог выбора папки
Добавлено: 07.07.07 14:03
Автор вопроса: Obfuscate
Есть такой код
Private Type BrowseInfo
hwndOwner As Long
pIDLRoot As Long
pszDisplayName As Long
lpszTitle As String
ulFlags As Long
lpfnCallback As Long
lParam As Long
iImage As Long
End Type
Dim strPath As String
Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long
Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal hMem As Long)
Private Sub Command1_Click()
strPath = ""
BrowseForFolder Me.hWnd, "Select folder"
MsgBox strPath
End Sub
Private Function BrowseForFolder(hwndOwner As Long, sPrompt As String) As String
Const BIF_RETURNONLYFSDIRS = 1, MAX_PATH = 260
Dim intNull As Integer, lngIdList As Long
Dim udtBI As BrowseInfo
With udtBI
.hwndOwner = hwndOwner
.lpszTitle = sPrompt
.ulFlags = BIF_RETURNONLYFSDIRS
End With
lngIdList = SHBrowseForFolder(udtBI)
If lngIdList Then
strPath = String$(MAX_PATH, 0)
SHGetPathFromIDList lngIdList, strPath
CoTaskMemFree lngIdList
intNull = InStr(strPath, vbNullChar)
If intNull Then strPath = Left$(strPath, intNull - 1)
End If
BrowseForFolder = strPath
End Function
Подскажите, пожалуйста, как сделать так, чтобы при появлении диалога, в нём сразу открывалась/выделялась заранее известная папка?
Ответы
Всего ответов: 6
Номер ответа: 1
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #1
Добавлено: 07.07.07 14:14
pIDLRoot As Long = SHSimpleIDListFromPath(начальная_папка)
Номер ответа: 2
Автор ответа:
Obfuscate
Вопросов: 3
Ответов: 10
Профиль | | #2
Добавлено: 07.07.07 21:51
Не работает, SHSimpleIDListFromPath возвращает 0.
В интернете нашёл много примеров с SHSimpleIDListFromPath, но ни один из них у меня не работает как нужно!
Номер ответа: 3
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #3
Добавлено: 07.07.07 21:54
можешь в дотнете попробовать?
Номер ответа: 4
Автор ответа:
Obfuscate
Вопросов: 3
Ответов: 10
Профиль | | #4
Добавлено: 08.07.07 00:26
А в дотнете будет работать? У меня не установлен, я на VB изредка программки только для себя пишу
Номер ответа: 5
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #5
Добавлено: 08.07.07 00:28
конечно, у меня ж работает
Номер ответа: 6
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #6
Добавлено: 08.07.07 00:59
дожились млять, указатль на строку передать немогут... Возьми ж пример готовый посмотри как там сделано, полно готовых, ПОЛНО!!!! В поиск, баян тема, мусор, оффтоп, флейм, срочно закрвть!