Главная страница
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.018 c
1-29831
ghg
2003-02-28 10:00
2003.03.10
Tbitmap


3-29738
Ihtiandr
2003-02-14 13:25
2003.03.10
dataSet


8-29960
STANT
2002-11-29 18:43
2003.03.10
Как добится оконного поведения приложения с DirectDraw


6-30003
Blacki
2003-01-20 16:06
2003.03.10
Вопрос по TServerSocket


7-30138
Seldon
2003-01-10 22:15
2003.03.10
Реестр