![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Код:
function KeyboardProc(Code : integer; wParam: WPARAM; lParam: LPARAM): LResult; stdcall;
begin
Showmessage('!!!');
end;
...
...
Handle := SetWindowsHookEx(WH_KEYBOARD, @KeyboardProc, 0, ThreadID);
...Говорят, что для локального хука Dll не нужна и хук можно ставить из своего приложения, но, почему-то не ставится. ThreadID - нахожу верно - проверял. Если вместо 0 поставить Hinstance, то при делании чего-нибудь приложение на которое ставился хук завершается. |
|
#2
|
||||
|
||||
|
Код:
hook:=SetWindowsHookEx(
WH_KEYBOARD_LL,
@LowLevelKeyboardProc,
HInstance,
0
); |
|
#3
|
|||
|
|||
|
В общем, переделал на Dll... Один хрен. Только появляется ошибка "Память не может быть written".
Из формы вызываю только процедуру, все остальное делается Dll. Ставлю хук на единственный поток notepad.exe в процедуре SetHook. |