![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ловушка и форма [D7, WinXP]
Blacksus © (2007-02-05 00:18:00)У меня такая проблемма: в системе устанавливается глобальная ловушка, которая отлавливает нажатие клавиши, при срабатывании ловушки имя нажатой клавиши должно передаваться в форму главного окна в поле TEdit, но почему то это не срабатывает...
function SysMsgProc(code:integer;wParam:word;lParam:longint) : longint; export; stdcall;
var
KeyName:array[0..16] of char;
begin
if Code >= 0 then
begin
Getkeynametext(lParam,Keyname,sizeof(keyname));
if (lParam and $40000000=0) then
begin
form1.edit1.text:=keyname;
end;
Result:=0;
end
else
Result := CallNextHookEx(SysHook,Code, wParam, lParam);
end;
BOGa (2007-03-09 16:09:00) [1]Я думал, что я плохой программист
Blacksus (2007-02-05 01:21:00) [2]А можно без API обойтись, чтобы внутри программы эти данные передавались?
Eraser (2007-02-05 01:11:00) [3]> [2] Blacksus (05.02.07 01:07)
самый простой способ - с помощю сообщения WM_COPYDATA.
Blacksus (2007-02-05 01:07:00) [4]я с хуками впервые сталкиваюсь, может подскажет кто-нибудь как передать данные в главное окно?
Eraser (2007-02-05 01:00:00) [5]> [0] Blacksus (05.02.07 00:18)
прежде чем писАть хуки не плохо бы почитать того же Рихтера.
> form1.edit1.text:=keyname;
грубейшая ошибка в данном контексте, особенно если хук не low level.