Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.05.23;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.05.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.008 c
1-73170
Гена
2002-05-14 04:43
2002.05.23
---|Ветка была без названия|---


1-73294
manumba
2002-05-11 16:05
2002.05.23
как можно документ МС_оффиса (ворд, ексель) отобразить на форме


14-73366
VictorT
2002-04-15 13:39
2002.05.23
Удалили мою ветку про переписочку.


1-73198
Gari
2002-05-14 14:43
2002.05.23
Прошу помощи !!!!!


1-73246
VG
2002-05-10 00:19
2002.05.23
Scrolling в TreeView





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский