Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ловушка и форма [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.


Наверх

Титульная страница Поиск, карта сайта Написать письмо