Главная страница
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.014 c
14-30065
Evgeny_R
2003-02-20 18:49
2003.03.10
Как показать девушке, что я ее люблю


14-30119
PSERG
2003-02-17 14:09
2003.03.10
Инсталяция пакетов


1-29840
Paxer
2003-02-27 18:56
2003.03.10
TDateTimePicker c возможностью ввода пустой даты?


1-29804
DVE
2003-02-27 16:33
2003.03.10
Не трассируется DLL!!! Что делать!


3-29717
Alex Y
2003-02-19 06:56
2003.03.10
Один коннект из нескольких dll или временные таблицы