Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Выбор папки Добавлено: 17.06.02 10:21  

Автор вопроса:  User Unknown | ICQ: uu@jabber.cz 

Тут многие спрашивали как вызвать диалог для выбора папки. Нате пожалуйста. После нескольких часов проведенных за раззиповкой старых архивов - нашел. Ликуйте.

 

Код, ну допустим формы.

'***************Form*Folder*Dialog****************


Dim udtBrowseInfo As BROWSEINFO, pid As Long
Dim path As String

 

Private Sub Form_Load()
With udtBrowseInfo
.hOwner = Me.hWnd
.lpszTitle = "Супер гляделка папок" & vbCrLf & "от User Unknown"
.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 Sub

 

'Это в обычный модуль.

'*************Module*Folder*Dialog****************

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


Const BIF_RETURNONLYFSDIRS = &H1

P.S. Извиняюсь за "скорость срабатывания", но лучше поздно, чем никогда.

 

Ответить

  Ответы Всего ответов: 8  

Номер ответа: 1
Автор ответа:
 SAVok



ICQ: 155153916 

Вопросов: 2
Ответов: 126
 Профиль | | #1 Добавлено: 17.06.02 14:18

THNKS ОГРОМНЫЙ!

Красатища-то какая... нашел полное описание SHBrowseForFolder и соответствующих структур в MSDN... прикольно! Прощай MS Common Dialog!!! Все так же просто в реализации, а все в API!!!

Еще раз СПАСИБО!

Ответить

Номер ответа: 2
Автор ответа:
 SAVok



ICQ: 155153916 

Вопросов: 2
Ответов: 126
 Профиль | | #2 Добавлено: 18.06.02 11:36

Я действительно этого не знал... но если вы профи то вам не составит труда выслать код который устанавлиевает открывшееся окно на определенную мной дир-ю.

Напр. Я ему "C:\WINNT", а в открывшемся окне дерево открытое на этой папке, причем, WINNT - не вершина дерева, а обычный нод.

Заранее, спасибо!

Ответить

Номер ответа: 3
Автор ответа:
 User Unknown



Вечный Юзер!

ICQ: uu@jabber.cz 

Вопросов: 120
Ответов: 3302
 Профиль | | #3 Добавлено: 18.06.02 12:47
Народ спрашивал - я ответил. В чем проблемы? Или форум не для этого? Ладно, в следующий раз этого не повторится.:(

Ответить

Номер ответа: 4
Автор ответа:
 Иван



Администратор

ICQ: 147688925 

Вопросов: 24
Ответов: 708
 Web-сайт: www.vbnet.ru
 Профиль | | #4
Добавлено: 19.06.02 19:44
Я могу менять только вершину, а вот node открыть - кишка слабовата

Ответить

Номер ответа: 5
Автор ответа:
 User Unknown



Вечный Юзер!

ICQ: uu@jabber.cz 

Вопросов: 120
Ответов: 3302
 Профиль | | #5 Добавлено: 20.06.02 18:19

Можно проводник запустить. Тебя это не устроит? Например

C:\WINDOWS\EXPLORER.EXE /n,/e,C:\WINNT\

 

А если надо, что бы папка WINNT была корнем, то

C:\WINDOWS\EXPLORER.EXE /n,/e,/root,C:\WINNT\

Вот только результат никак не вытянуть. Какой файл был выбран, например.

 

SAVok, знаю, не туда я загнул, но может хоть это кому то окажется полезным. Ну хоть чуть-чуть!

Ответить

Номер ответа: 6
Автор ответа:
 SAVok



ICQ: 155153916 

Вопросов: 2
Ответов: 126
 Профиль | | #6 Добавлено: 21.06.02 13:48

Спасибо ВСЕМ!

Я когда спрашивал уже видел решение на С, но думал, что вы сможете мне на VB его показать... мало того, что там С далеко не самый простой так еще и использование CallBack функции... вобщем нашхрапом перевести этот код в VB не удалось.  :(

P.S. Иван, а про открытие в кач-ве вершины так это я знаю и умею. А вам с JEDI это должно быть уроком... иногда не стоит смеятся...

Ответить

Номер ответа: 7
Автор ответа:
 -=Gork=-



ICQ: 9993198 

Вопросов: 8
Ответов: 229
 Web-сайт: olegm.wz.cz/
 Профиль | | #7
Добавлено: 06.12.02 08:18

Эй! НЭТ! Здесь все честно зарабатывают ответы, а ты - _____!!!!!!

Ответить

Номер ответа: 8
Автор ответа:
 User Unknown



Вечный Юзер!

ICQ: uu@jabber.cz 

Вопросов: 120
Ответов: 3302
 Профиль | | #8 Добавлено: 06.12.02 09:37

(*топая ногами*)Да ещё и в моем топике !!! Вот негодник!

Хотя... от VisualBasic.NET я чего-то подобного и ожидал %))

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам