Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Определение пути текущей папки [D6, D7, Win95/98, WinME, NT4, Win2k, WinXP]


Max-F ©   (2005-04-23 13:31:00) 

Как определить путь папки, в которой я сейчас нахожусь Проводником?

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

Всем заранее спасибо!


Юрий Зотов   (2005-04-23 15:12:00) [1]

> Max-F   (23.04.05 14:31) [9]

Схема решения есть? Есть. Конкретные имена функций указаны? Указаны. Справка имеется? Имеется.

Значит - вперед. Будут конкретные вопросы по реализации (а они, видимо, будут) - с ними сюда, на форум.

А если подходить так: "Мне это не реализовать, с моими знаниями. Никогда с этими функциями не работал" - то знаний никогда и не прибавится. Каждый когда-то с чем-то никогда не работал - а теперь работает.

И ничего страшного. Надо просто один раз помучиться, зато потом очень многое станет гораздо проще. А другого пути и нет.


Max-F   (2005-04-23 14:31:00) [2]

Поэтому и прошу помощи у тех, кому она по зубам...


Anatoly Podgoretsky   (2005-04-23 14:29:00) [3]

Взялся за задачу не по зубам.


Max-F   (2005-04-23 14:24:00) [4]

Мда... Мне это не реализовать, с моими знаниями :) Никогда с этими функциями не работал...


Юрий Зотов   (2005-04-23 14:17:00) [5]

> Max-F   (23.04.05 14:04) [5]

Чем не устраивает [1]?

При нажатии горячей клавиши:
1. GetForegroundWindow
2. GetWindowModuleFileName (проверка, что это Проводник. Если нет - выход).
3. GetWindowThreadProcessID
4. OpenProcess
5. CreateRemoteThread. В параметре передается хэндл своего окна.
6. Поточная функция вызывает GetCurrentDirectory, отсылает окну через SendMessage сообщение WM_COPYDATA (тем самым передавая результат) и завершается.


Max-F   (2005-04-23 14:04:00) [6]

Да вот у меня-то как раз и отключено отображение полного пути...

Сижу ломаю голову как же мне реализовать это... ???


TUser   (2005-04-23 13:57:00) [7]

А может проще прочитать?
GetForegroundWindow и там FindWindowEx'ом найти комбобокс. Потом прочитать через GetWindowText. Правда, зависит от настроек - должно быть включено отображение полного пути в строке адреса. Гораздо лучше, конечно, привязываться к заголовку.


Max-F   (2005-04-23 13:51:00) [8]

// ну открыто у меня сейчас 10 разных папок..И в какой ты файл создовать??

В активной папке. Окна приложения нет, ты работаешь с Проводником.


jack128   (2005-04-23 13:47:00) [9]

Max-F   (23.04.05 13:31)
Как определить путь папки, в которой я сейчас нахожусь Проводником?

ну открыто у меня сейчас 10 разных папок..И в какой ты файл создовать??


Юрий Зотов   (2005-04-23 13:43:00) [10]

Не уверен, но попробовал бы комбинацию
CreateRemoteThread + GetCurrentDirectory + WM_COPYDATA


Наверх

Титульная страница Поиск, карта сайта Написать письмо