Полный путь к папке,открытой юзером

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
SergT
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 237
Зарегистрирован: 22.06.2005 (Ср) 21:50
Откуда: Москва

Полный путь к папке,открытой юзером

Сообщение SergT » 02.11.2005 (Ср) 8:43

Желаю всем доброго здоровья. У меня вопрос к знающим!
Используя shellhook можно получить handle открытого окна. Можно ли по handle узнать полный путь к открытой папке? Можно взять путь из заголовка окна, но юзер может отключить "Выводить полный путь в заголовке окна"! Долго искал ответ на этот вопрос ( и на форуме) - не нашел ничего. Может быть иным путем решить задачу?
Но, надо любым способом получить полный путь к папке, только что открытой пользователем. Надоумьте, пожалуйста, что делать...
Л. Толстой, «зачем обдумывать обдуманное, бери готовое и иди дальше, в этом сила человечества»
"Всё в наших руках, поэтому их нельзя опускать" (Коко Шанель)

GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Сообщение GM » 02.11.2005 (Ср) 8:54

Кстати на форуме уже обсуждалась такая же проблема.
Путь еще можна взять из адресной строки, только это тоже не универсальный метод.
الفيجوال بيسك الرابح

SergT
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 237
Зарегистрирован: 22.06.2005 (Ср) 21:50
Откуда: Москва

Сообщение SergT » 02.11.2005 (Ср) 9:08

Юзер и это может отменить. Однако, следует уточнить, что открывают папки стандартным explorer. т.е. юзер щелкает мышкой по ярлыкам папок и тут... хотелось бы знать. Может быть есть способ установить, что открывшаяся папка находится в локальной сети? Меня бы это уже выручило!
Л. Толстой, «зачем обдумывать обдуманное, бери готовое и иди дальше, в этом сила человечества»
"Всё в наших руках, поэтому их нельзя опускать" (Коко Шанель)

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 02.11.2005 (Ср) 9:25

По идее, должны быть всякие ShellNotify, которые можно отслеживать. Но это так, общие рассуждения.
Lasciate ogni speranza, voi ch'entrate.

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 02.11.2005 (Ср) 9:27

А что, ShellWindows уже отменили?

поиск по IESPY
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

SergT
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 237
Зарегистрирован: 22.06.2005 (Ср) 21:50
Откуда: Москва

Сообщение SergT » 02.11.2005 (Ср) 10:30

IESPY код в С . Может есть ссылки на VB?

что касается ShellWindows
Creates and returns a new ShellWindows object that is a copy of this ShellWindows object.

Private Sub fnShellWindowsNewEnumVB()
Dim objShell As Shell
Dim objShellWindows As ShellWindows

Set objShell = New Shell
Set objShellWindows = objShell.Windows

If (Not objShellWindows Is Nothing) Then
Dim vEnumItem As Variant

For Each vEnumItem In objShellWindows
Debug.Print vEnumItem.Type
Next vEnumItem
End If

Set objShellWindows = Nothing
Set objShell = Nothing
End Sub
Новое окно??
Л. Толстой, «зачем обдумывать обдуманное, бери готовое и иди дальше, в этом сила человечества»
"Всё в наших руках, поэтому их нельзя опускать" (Коко Шанель)

SergT
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 237
Зарегистрирован: 22.06.2005 (Ср) 21:50
Откуда: Москва

Сообщение SergT » 02.11.2005 (Ср) 10:43

Да , действительно была такая тема в форуме:
Как узнать пути всех открытых окон эксплорера
Нашел ответ от Sebas:
"ShellWindows - получаем список окон проводника и потом вытаскиваем урлу, есть тонкости...."
Можно это разъяснить?
Л. Толстой, «зачем обдумывать обдуманное, бери готовое и иди дальше, в этом сила человечества»
"Всё в наших руках, поэтому их нельзя опускать" (Коко Шанель)

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 02.11.2005 (Ср) 11:28

Подключаем библу
Microsoft Internet Controls

Dim WithEvents c as ShellWindows

новое окно - NewWindows, там их даже 3, помойму...
урлу вытаскиваем из документа, посмотреть в Watch
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

SergT
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 237
Зарегистрирован: 22.06.2005 (Ср) 21:50
Откуда: Москва

Сообщение SergT » 02.11.2005 (Ср) 22:45

Спасибо! Пришлось повозиться, но подход был весьма интересным и код занял немного места.(по поиску ShellWindows и ) НО задачка решилась. Однако, осталось несколько вопросов (аппетит приходит во аремя...). Не совсем понял, возможно ли отменить открытие окна ( при определенных условиях)? Если ДА - подскажите как,пожалуйста...
Л. Толстой, «зачем обдумывать обдуманное, бери готовое и иди дальше, в этом сила человечества»
"Всё в наших руках, поэтому их нельзя опускать" (Коко Шанель)

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 02.11.2005 (Ср) 23:08

сделай ему close в NewWindow
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 122

    TopList