Форум: "WinAPI";
Текущий архив: 2003.03.10;
Скачать: [xml.tar.bz2];
ВнизНе получается глобальный отлов клавиш Найти похожие ветки
← →
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 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.03.10;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c