Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.10;
Скачать: 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 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.02 c
1-29952
@_Piotr
2003-02-27 15:36
2003.03.10
Имя компонента в процедуру для обработки???


1-29814
R
2003-02-27 09:34
2003.03.10
Вопрос о неоднородности скорости работы цикла


1-29930
Jeepston
2003-02-27 11:24
2003.03.10
Delphi+Finereader


1-29817
msoftware
2003-02-28 05:12
2003.03.10
ПОЧЕМУ ВОЗНИКАЕТ ABSTRACT ERROR???


14-30041
Vvedensk
2003-02-20 14:09
2003.03.10
Инсталяция компанента...