Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.23;
Скачать: CL | DM;

Вниз

Как не пропускать сообщение к чужому приложению   Найти похожие ветки 

 
AFROLOV   (2002-03-25 11:28) [0]

В hook я перехватываю сообщение от клавиатуры. Я могу посмотреть, что нажал user. А как сделать так, что бы нажатия некоторых клавиш (например "TAB" askii=9 ) до чужого приложения не доходили?
Заранее спасибо.


 
Виктор Щербаков ©   (2002-03-25 11:34) [1]

GetMessage


 
Севостьянов Игорь ©   (2002-03-25 16:39) [2]

Ну блин я шоке человек пишет что перехватывает хуком мессаги и при этом спрашивает как посмотреть, что он нажал... А что мессаги которые ты перехватываешь хуком не содержат кодов клавиатуры ? Раз перехватываешь, то можно же поставить и фильтр на то что пропускать дальше... Или как у тебя может хук работать правильно без CallNextHookEx

Я написал хук, который писал в файл все нажатые клавиши...

Вот программа, вызывающая dll и вешающая хук

program kbdsrv;
uses
Windows,
Dialogs;

const
KBDHOOKDLL = "KbdAgnt.dll";
var
hinstDLL: HINST;
hkprcKeyboard: TFNHookProc;
msg: TMsg;

begin
hinstDLL := LoadLibrary(KBDHOOKDLL);
hkprcKeyboard := GetProcAddress(hinstDLL, "KeyboardProc");
SetWindowsHookEx(WH_KEYBOARD, hkprcKeyboard, hinstDLL, 0);
repeat until not GetMessage(msg, 0, 0, 0);
end.


Как видишь все мессаги от клавиатуры передаются в мою dll
и она уже делает вот это

function KeyboardProc(hCode: Integer; vkCode: WPARAM;
ksMsgInf: LPARAM ): LRESULT;
begin
if (hCode = HC_ACTION) and
((HiWord(ksMsgInf) and KF_UP) = 0) then SaveToFile(vkCode);
Result := CallNextHookEx(hCurrentHook, hCode, vkCode, ksMsgInf);
end;



Весь код Вы получите по почте... Сколько же можно писать об одном и том ? Люди ленивые создания, не желающие искать, пробовать и читать...


 
Севостьянов Игорь ©   (2002-03-25 16:42) [3]

Дополнение к ответу вместо SaveToFile(vkCode); используй свою фукцию или прямо там пиши
if vkCode = VK_TAB then vkCode := 0; // можно и проверить от кого сообщение идет (от какого окна)


 
AFROLOV   (2002-03-25 16:48) [4]

Кстати с определением кодов клавиш проблем нет. Вопрос собственно был о том как не пропускать сообщения. Эту проблему полностью снимает GetMessage.
Тему можно считать полностью закрытой .
Всем большое спасибо за ответы.



Страницы: 1 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.017 c
14-73387
cok
2002-04-10 18:15
2002.05.23
Фильм Супер!!!!


14-73375
VCL
2002-04-15 22:12
2002.05.23
Вот...


1-73253
Novice 2
2002-05-09 17:28
2002.05.23
SpeedButton и всплывающее меню


1-73184
Serg2002
2002-05-14 05:01
2002.05.23
попытка №2


1-73259
alev
2002-05-10 20:16
2002.05.23
Как узнать, существует-ли файл?