![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Любители хуков и клавиатурных шпионов ! [D6, Win95/98]
ATLANTIDO © (2002-02-05 01:12:00)Любители хуков и клавиатурных шпионов !
Будет работать такой код (для отловки нажатий на клавиши)?
Попробуйте сделать это следующим образом:
type
TForm1 = class(TForm)
...
private
procedure WMNCActivate(var Msg: TMessage); message WM_NCACTIVATE;
end;
procedure TForm1.WMNCActivate(var Msg: TMessage);
begin
{ здесь обработка принятых событий }
end;
Заранее благодарен.
ATLANTIDO (2002-02-07 01:06:00) [1]Спасибо всем !
AlexRush (2002-02-05 13:56:00) [2]{
Вот тебе пример рабочего кода, который блокирыет ввод с клавы и мышы. Это текст .DPR файла
}
program InputLocker;
USES Windows;
function KeybProc(nCode:integer;
key:DWORD;
state:DWORD):LRESULT;stdcall;
begin
result:=128500;{ Любое НЕнулувое значение - запрет на использование сообщения }
end;
TYPE PMOUSEHOOKSTRUCT = ^MOUSEHOOKSTRUCT;
function MouseProc(nCode:integer;
WM_Mmsg:DWORD;
ptrMHS:PMOUSEHOOKSTRUCT):LRESULT;stdcall;
begin
result:=128500;
end;
VAR hKeybHook,
hMouseHook:DWORD;
msg:tagMSG;
BEGIN
hKeybHook:=SetWindowsHookExA(WH_KEYBOARD,@KeybProc,HINSTANCE,0);
hMouseHook:=SetWindowsHookExA(WH_MOUSE,@MouseProc,HINSTANCE,0);
while GetMessage(msg,0,0,0) do ;
UnhookWindowsHookEx(hKeybHook);
UnhookWindowsHookEx(hMouseHook);
END.
Fellomena (2002-02-05 13:55:00) [3]нет не будет.
Для отлова нажатий клавишь в ТВОЁМприложении нужно либо делать подмену ПроцедурыОкна либо (перехват ВСЕХ сообщений и синхронных и асинхронных, т.е. и PostMessage и SendMessage) либо Application.OnMessage:= MyApp(); - это только из Очереди которые (PostMessage). Короче, направление, думаю, ясно...
ggrisha (2002-02-05 09:46:00) [4]Как по твоему событие активации окна поможет перехватывать клавишы?