Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.06;
Скачать: CL | DM;

Вниз

ловушка и форма   Найти похожие ветки 

 
Blacksus   (2007-02-05 00:18) [0]

У меня такая проблемма: в системе устанавливается глобальная ловушка, которая отлавливает нажатие клавиши, при срабатывании ловушки имя нажатой клавиши должно передаваться в форму главного окна в поле 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;


 
Eraser ©   (2007-02-05 01:00) [1]

> [0] Blacksus   (05.02.07 00:18)

прежде чем писАть хуки не плохо бы почитать того же Рихтера.

> form1.edit1.text:=keyname;

грубейшая ошибка в данном контексте, особенно если хук не low level.


 
Blacksus   (2007-02-05 01:07) [2]

я с хуками впервые сталкиваюсь, может подскажет кто-нибудь как передать данные в главное окно?


 
Eraser ©   (2007-02-05 01:11) [3]

> [2] Blacksus   (05.02.07 01:07)

самый простой способ - с помощю сообщения WM_COPYDATA.


 
Blacksus   (2007-02-05 01:21) [4]

А можно без API обойтись, чтобы внутри программы эти данные передавались?


 
BOGa   (2007-03-09 16:09) [5]

Я думал, что я плохой программист



Страницы: 1 вся ветка

Текущий архив: 2007.05.06;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.022 c
15-1175870246
oldman
2007-04-06 18:37
2007.05.06
Спасибо Биллу Гейтсу, за то, что нам так весело...


2-1176443674
vitv
2007-04-13 09:54
2007.05.06
DBGrid-блокировка ввода текста с клавиатуры


2-1176787851
allucard
2007-04-17 09:30
2007.05.06
Как внутри класса динамически создавать обьекты?


4-1165311288
Leshiy
2006-12-05 12:34
2007.05.06
Работа с MainMenu "чужого" приложения.


2-1176791730
allucard
2007-04-17 10:35
2007.05.06
Есть два списка TListView - как определить какой из них выделен?