Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

hooks [D5, Win95/98]


dip56245 ©   (2002-01-31 16:28:00) 

Господа, такая проблема: создал библиотеку(хук) для перехвата кнопок вне приложения, работает нормально, только если приложение виндовое, под FAR, DN или других не вин. приложениях - непашет! как это исправить?


Fellomena   (2002-02-08 12:00:00) [1]

Приведи код в котором ты hook ставишь.
Попробуй ставить не WH_KEYBOARD, а WH_KEYBOARD_LL
Это низкоуровневый фильтр клавы. Может поможет ?


dip56245   (2002-02-07 23:06:00) [2]

function KeyboardProc(Code: Integer; wParam, lParam: Integer): Integer; stdcall;
begin
if (Code >= 0) and ((HiWord(lParam) and KF_ALTDOWN) <> KF_ALTDOWN) and ((HiWord(lParam) and KF_REPEAT) <> KF_REPEAT) and ((HiWord(lParam) and KF_UP) <> KF_UP) then begin
if IsWindow(PProgData.WndMain) then PostMessage(PProgData.WndMain, HM_ACTION, Ord(haKBD), wParam);
end;
Result := CallNextHookEx(PProgData^.Hooks.KeyboardHook, Code, wParam, lParam);
end;

Вот мой хук - из-под ФАРа не передает кнопки! 8(


ggrisha   (2002-02-04 09:41:00) [3]

Можно непосредственно опрашивать порт клавиатуры, но к сожалению под win2k это не проходит.


Serg001   (2002-02-04 08:42:00) [4]

Чувак, покажи свою функцию hook.


dip56245   (2002-02-03 20:30:00) [5]

Ну так как мне перехватить нажатие клавишь в консольных и ДОСовских прогах? На 21h вешаться?


Виктор Щербаков   (2002-01-31 16:55:00) [6]

Значит сообщения, связанные с клавиатурой в них не отправляются.

Windows maintains a single system message queue and any number of thread message queues, one for each GUI thread. To avoid the overhead of creating a message queue for non-GUI threads, all threads are created initially without a message queue. The system creates a thread"s message queue only when the thread makes its first call to one of the Win32 API User or GDI functions.

Кстати FAR - просто консольный, т.е. он не ДОСовый.


Наверх

Титульная страница Поиск, карта сайта Написать письмо