Страница: 1 |
Тут многие спрашивали как вызвать диалог для выбора папки. Нате пожалуйста. После нескольких часов проведенных за раззиповкой старых архивов - нашел. Ликуйте. Код, ну допустим формы. '***************Form*Folder*Dialog**************** Private Sub Form_Load() pid = SHBrowseForFolder(udtBrowseInfo) SHGetPathFromIDList ByVal pid, ByVal path 'Это в обычный модуль. '*************Module*Folder*Dialog**************** Declare Function SHBrowseForFolder Lib "shell32.dll" Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long Type BROWSEINFO P.S. Извиняюсь за "скорость срабатывания", но лучше поздно, чем никогда.
THNKS ОГРОМНЫЙ! Красатища-то какая... нашел полное описание SHBrowseForFolder и соответствующих структур в MSDN... прикольно! Прощай MS Common Dialog!!! Все так же просто в реализации, а все в API!!! Еще раз СПАСИБО! Я действительно этого не знал... но если вы профи то вам не составит труда выслать код который устанавлиевает открывшееся окно на определенную мной дир-ю. Напр. Я ему "C:\WINNT", а в открывшемся окне дерево открытое на этой папке, причем, WINNT - не вершина дерева, а обычный нод. Заранее, спасибо! Можно проводник запустить. Тебя это не устроит? Например C:\WINDOWS\EXPLORER.EXE /n,/e,C:\WINNT\ А если надо, что бы папка WINNT была корнем, то C:\WINDOWS\EXPLORER.EXE /n,/e,/root,C:\WINNT\ Вот только результат никак не вытянуть. Какой файл был выбран, например. SAVok, знаю, не туда я загнул, но может хоть это кому то окажется полезным. Ну хоть чуть-чуть! Спасибо ВСЕМ! Я когда спрашивал уже видел решение на С, но думал, что вы сможете мне на VB его показать... мало того, что там С далеко не самый простой так еще и использование CallBack функции... вобщем нашхрапом перевести этот код в VB не удалось. P.S. Иван, а про открытие в кач-ве вершины так это я знаю и умею. А вам с JEDI это должно быть уроком... иногда не стоит смеятся... Эй! НЭТ! Здесь все честно зарабатывают ответы, а ты - _____!!!!!! (*топая ногами*)Да ещё и в моем топике !!! Вот негодник! Хотя... от VisualBasic.NET я чего-то подобного и ожидал ) Страница: 1 |
Вопрос: Выбор папки
Добавлено: 17.06.02 10:21
Автор вопроса: User Unknown | ICQ: uu@jabber.cz
Dim udtBrowseInfo As BROWSEINFO, pid As Long
Dim path As String
With udtBrowseInfo
.hOwner = Me.hWnd
.lpszTitle = "Супер гляделка папок" & vbCrLf & "от User Unknown"
.ulFlags = BIF_RETURNONLYFSDIRS
End With
path = Space(260)
Debug.Print Left$(path, InStr(1, path, Chr(0)) - 1)
End Sub
Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
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
Const BIF_RETURNONLYFSDIRS = &H1
Ответы
Всего ответов: 8
Номер ответа: 1
Автор ответа:
SAVok
ICQ: 155153916
Вопросов: 2
Ответов: 126
Профиль | | #1
Добавлено: 17.06.02 14:18
Номер ответа: 2
Автор ответа:
SAVok
ICQ: 155153916
Вопросов: 2
Ответов: 126
Профиль | | #2
Добавлено: 18.06.02 11:36
Номер ответа: 3
Автор ответа:
User Unknown
Вечный Юзер!
ICQ: uu@jabber.cz
Вопросов: 120
Ответов: 3302
Профиль | | #3
Добавлено: 18.06.02 12:47
Народ спрашивал - я ответил. В чем проблемы? Или форум не для этого? Ладно, в следующий раз этого не повторится.
Номер ответа: 4
Автор ответа:
Иван
Администратор
ICQ: 147688925
Вопросов: 24
Ответов: 708
Web-сайт:
Профиль | | #4
Добавлено: 19.06.02 19:44
Я могу менять только вершину, а вот node открыть - кишка слабовата
Номер ответа: 5
Автор ответа:
User Unknown
Вечный Юзер!
ICQ: uu@jabber.cz
Вопросов: 120
Ответов: 3302
Профиль | | #5
Добавлено: 20.06.02 18:19
Номер ответа: 6
Автор ответа:
SAVok
ICQ: 155153916
Вопросов: 2
Ответов: 126
Профиль | | #6
Добавлено: 21.06.02 13:48
Номер ответа: 7
Автор ответа:
-=Gork=-
ICQ: 9993198
Вопросов: 8
Ответов: 229
Web-сайт:
Профиль | | #7
Добавлено: 06.12.02 08:18
Номер ответа: 8
Автор ответа:
User Unknown
Вечный Юзер!
ICQ: uu@jabber.cz
Вопросов: 120
Ответов: 3302
Профиль | | #8
Добавлено: 06.12.02 09:37