|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Хотели Кука, а съели хука
Здравствуйте всем!
Когда-то во времена XP прекрасно работала функция SetWindowsHookEx, но в Widows 7(а может и в Висте), перестала, не помогали никакие манифесты, есть ли сейчас что-либо подобное SetWindowsHookEx для Windows7,8,10 ? Спасибо за информацию. |
#2
|
|||
|
|||
Да, вроде, должно работать, согласно МСДН.
Но там теперь есть ограничения. 1. Битность dll и процесса должна совпадать. Т.е. для 32 битного процесса должна быть соотвественно 32 битная dll, а для 64 битного - 64 битная dll. 2. Имена 32х и 64х битных dll должны быть разные 3. Для Windows Store процессов/приложений надо обязательно давать dwThreadId, инача хук не поставится. |
#3
|
|||
|
|||
Цитата:
Спасибо за ответ, но насколько я помню именно SetWindowsHookEx работает без dll, по 3 пункту так делать не пробовал,но попробую. Интересно кто-нибудь пользовался этой функцией для windows 7 и выше, и какой результат? |
#4
|
|||
|
|||
юзал только мышь. на 7/10 х64 вполне работает. без длл
Код:
MouseHook := SetWindowsHookEx(WH_MOUSE_LL, @LowLevelMouseProc, HInstance, 0); Код:
function LowLevelMouseProc(nCode: Integer; WParam: WParam; LParam: LParam) : LRESULT; stdcall; begin if nCode >= 0 then begin case WParam of WM_LBUTTONUP: begin ... end; end; end ... Последний раз редактировалось nixon232, 09.02.2018 в 17:48. |
#5
|
|||
|
|||
А можно спросить такой вот странный вопрос - нифига хукать свое окно? Что, просто написать свой обработчик сообщения религия не позволяет? Или воспольщоваться AppEvents.OnMessage?
Эта функция как раз полезна для отлова сообщений в ЧУЖИХ окнах... |