Вниз
Скачать: CL | DM;

Не получается глобальный отлов клавиш   Найти похожие ветки 

← →
ISergey   (2003-01-20 17:05) [0]

Буду краток:
Написал прогу, которая висит в трее и должна отслеживать все нажатия кнопок в системе. Если активно главное окно моей программы, все получается. Если же нет, то команда PostMessage не работает. Почему?

const WM_KEYHOOK = WM_USER + 123;

// Процедура хука
function KeyboardProc(nCode: Integer; wParam: WPARAM; lParam: LPARAM ): LRESULT;
var i : Integer;
g_hhk : HHOOK;
begin
if ((nCode = HC_ACTION) and (((lParam shr 16) and KF_UP) = 0))
then begin
for i := 0 to Count-1 do PostMessage( Handles^[i],
WM_KEYHOOK, wParam, lParam);
end;
Result := CallNextHookEx( g_hhk, nCode, wParam, lParam);
end;

//Код инициализации (находится в длл)
HookHandle := SetWindowsHookEx( WH_KEYBOARD, @KeyboardProc,
hInstance, 0);
Count := 0; Handles := nil;

//Основная прога вызывает длльную процедуру пополнения списка Handles и, по идее, должна обрабатывать WM_KEYHOOK:
procedure TForm1.WMKeyHook(var Message: TMessage);
begin
Label1.Caption := "Где-то нажата кнопка!";
end;


← →
ISergey   (2003-01-20 18:00) [1]

Разобрался! Если кого интересует - пишите! Отвечу!


← →
KDenis ©   (2003-01-20 23:27) [2]

Ну и как?


← →
dimich1978 ©   (2003-01-21 11:07) [3]

Куда писать то? Ответь и мне на мыло


← →
Anatoly Podgoretsky ©   (2003-01-21 11:16) [4]

grandfather@country.ru


← →
romychk   (2003-01-21 13:24) [5]

Если можно скинь мне исходник тоже, а то перед єтим говорили, что для такого нужно писать ДЛЛ, и из своей программы, забирать.


← →
romychk   (2003-01-21 16:59) [6]

Я чтото не прочитал, и обрадовался тут тоже используется ДЛЛ, а не лзя ли без ДЛЛ?



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.011 c
1-29814
R
2003-02-27 09:34
2003.03.10
Вопрос о неоднородности скорости работы цикла


14-30017
Романов Р.В.
2003-02-24 11:36
2003.03.10
Как вставить ресурс в орешник?


1-29881
AlexanderSK
2003-02-26 14:27
2003.03.10
VarArray - глупый вопрос


1-29848
Андрусь
2003-02-27 19:26
2003.03.10
как определить связь


3-29737
Юный_программер
2003-02-19 13:02
2003.03.10
Не подскажите, в АДО свойство Prepared для параметеризированных




   Наверх