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

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

Получение нажатых клавиш [D7]


ZLOFENIX ©   (2006-08-21 07:45:00) 

Как получить нажатые клавиши, например в блокноте,
А НЕ ВО ВСЕ СИСТЕМЕ, и без длл !


ANB   (2006-08-23 10:05:00) [1]


> ZLOFENIX ©   (23.08.06 02:54) [7]

Узнать хендл окна блокнота, поставить хук WH_GETMESSAGE (DLL писать придется), в функцию-фильтр хука будет приезжать хендл окна, которому адресовалось сообщение. И обычное сравнение if (Handle = NoteHandle) then begin . . . :)


ZLOFENIX   (2006-08-23 02:54:00) [2]

А как узнать что клавиша нажата именно в блокноте ?


ANB   (2006-08-22 18:17:00) [3]


> GetForegroundWindow(),

Неаккуратно эта штука работает. Я пробовал уже. Если много щелкать, то промахивается. Лучше WH_GETMESSAGE. Правда DLL понадобится.


Сергей М.   (2006-08-22 14:59:00) [4]


> ANB ©   (22.08.06 14:54) [4]


GetForegroundWindow(), естественно)

Дальше с пом. GetWindowThreadProcessId получаем ID процесса, ну а имея оной узнать имя соответствующего ЕХЕ-файла не составляет трудностей


ANB   (2006-08-22 14:54:00) [5]


> WH_KEYBOARD_LL

И как хендл окна тут узнать ?


Сергей М.   (2006-08-22 08:11:00) [6]


> ZLOFENIX ©   (22.08.06 01:18) [2]

http://www.google.ru/search?hs=kW2&hl=ru&client=firefox-a&rls=org.mozilla%3Aru%3Aofficial&q=wh_keyboard_ll&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=lang_ru


ZLOFENIX   (2006-08-22 01:18:00) [7]

а можна в виде кода ?


Сергей М.   (2006-08-21 10:38:00) [8]

см. WH_KEYBOARD_LL


Наверх

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