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

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

ShellHook без Explorera [D6, Win95/98, WinXP]


Сергей Ю. ©   (2004-05-31 10:17:00) 

Я использую ShellHook:
WM_SHELLHOOKMESSAGE := RegisterWindowMessage('SHELLHOOK');
if WM_SHELLHOOKMESSAGE<>0 then RegisterShellHook(MainWnd, 3);
полный код пробегал в этом форуме. Все чудненько работает когда запускался Explorer, т.е. винды грузяться, експлорер запускается, я его убиваю, запускаю свой шелл и все вроде работает, но если я свой шелл ставлю вместо експлорера, т.е. при загрузке експлорер негрузиться, то сообщения к моей проге неприходят :(. Что такое грузит експлорер, чего у меня нет? И как это лечить?
Большое спасибо за Ваши ответы.


DVM   (2004-06-01 16:47:00) [1]


> Неужели никто свой шелл не писал - НЕВЕРЮ :)!

Я писал. И все замечательно работает.
Вообще, ты не первый, у кого такая ситуация. Но работать должно как и при запущенном эксплорере, так и без него. Ничего особенного эксплорер не запускает. Но при установке хука WH_SHELL, как сказано на MSDN, надо установить MinimizedMetrics. Потом все будет работать.


Сергей Ю.   (2004-06-01 10:32:00) [2]

Ставлю WH_SHELL, код взял отсюда: http://delphimaster.ru/cgi-bin/forum.pl?id=1083248098&n=5
Дык таже фигня - при запущеном эксплорере все чюдесно робит, если я свою прогу запускаю как шелл, т.е. недаю пускаться эксплореру, то приходит ко мне только HSHELL_LANGUAGE, а о создании/разрушении окон моему хуку ничего неизвестно :( Что-же такое запускает эксплорер, что потом после него остается и позволяет работать шелл-хукам? Неужели никто свой шелл не писал - НЕВЕРЮ :)!


Сергей Ю.   (2004-05-31 22:45:00) [3]

А можно функционирующий код для хука WH_SHELL, а то то-что тут в форуме пробегало у меня неработает. Приведенный Вами код единственное что я смог заставить работать.


DVM   (2004-05-31 17:19:00) [4]


> И как это лечить?
> Большое спасибо за Ваши ответы.

Это мой тут код пробегал. Лечить одним способом - поставить норамльную ловушку WH_SHELL и не мучаться. Функция выше изучена не до конца и как ее использовать на все 100 процентов тоже неясно. На сайте Microsoft она вообще описана неправильно. Более того, от нормального хука можно получить гораздо больше нужной информации.


Наверх

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