![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Определение пути текущей папки [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