Форум: "WinAPI";
Текущий архив: 2005.09.04;
Скачать: [xml.tar.bz2];
ВнизПроблема с hook ом Найти похожие ветки
← →
new12345 (2005-07-19 12:27) [0]Нужно перехватывать нажатия клавиш на клавиатуре
вот что у меня получилось:
library Project1;
uses
Windows, sysutils,
Messages,
dialogs;
var
syshook : Hhook = 0;
{$R *.res}
function new1(code : integer; wparam : wparam; lparam : lparam) : lresult; stdcall;
var
t : ^tagMSG;
begin
t:= ptr(lparam);
if t^.message = WM_KEYDOWN then showmessage("some key was pressed");
result := callnexthookex(syshook, code, wparam, lparam);
end;
procedure run_hook; export;
begin
syshook := setwindowshookex(WH_getmessage, @new1, HInstance, 0);
end;
procedure stop_hook; export;
begin
unhookwindowshookex(syshook);
syshook := 0;
end;
exports
run_hook index 1,
stop_hook index 2;
begin
end.
нажатия клавиш перехватываются, но после нажатия Enter"а сообщения начинают дублироваться, тоесть после одного нажатия клавиши приходит два сообщения, то же самое происходит если использовать WH_KEYBOARD. Мож кто знает че делать?
← →
Eraser © (2005-07-19 12:50) [1]new12345 (19.07.05 12:27)
Я так понимаю просто приходит сначала сообщение о нажатии, потом об отжатии кнопки.
← →
new12345 (2005-07-19 13:56) [2]to Eraser
но отлавливается то WM_KEYDOWN - тоесть только нажатие.
кстати если несколько раз нажать enter то собщений бывает и 3
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.09.04;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c