Показать полную графическую версию : Как отслеживать нажатия кнопок в Windows?
Собственно проблема описанна в заголовке топика. Чего я хочу? Мне жутко не нравиться, что в Windows необходимо для создания "горячих клавиш" обязательно заводить ярлык, притом не где-нибудь, а только на рабочем столе или в меню "Пуск".
Существует ли способ в своей программе получать все сообщения об нажатии клавиш, для любого активного окна?
Или другая формулировка этого вопроса: Как узнать какое окно в данный момент активно, и как получать его соообщения.
А начем ты пишишь? Если на VC/VB то это довольно просто..
В VB можно найти как это делать через API (честно говоря точно не знаю но могу отправеть по адресу www.vbexplorer.com там наверняка что то готовое есть..)
А если в VC могу и поточнее...
неуверин что это то, но направить оно точно может:
http://msdn.microsoft.com/msdnmag/issues/1200/c/default.aspx
(это статья с экземплами, в виде вопросов и ответов. Посмотри второй вопрос.)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/_core_global_hot_keys.asp
помойму это больше подходит.. покрайней мере боли сосркдоточено (страница являет собой начало темы горячих клавиш в мсдиэне)
и немного теории
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/hotkey/hotkey.asp
если ненашол то что искал поищи в списке линков на:
http://search.microsoft.com/search/results.aspx?View=msdn&p=1&s=1&c=4&st=a&qu=hot+keys&na=30
MrMadman
29-12-2003, 03:06
Лови WM_KEYDOWN
Sharkky
Хук на клавиатуру ставь. Например: http://ivank.ru/trash/KeyHooker.zip - меняет нажатие кэпса на контрол. Правда с DirectInput'ом не работает, а как следствие и в игрушках. Код, вообще говоря, кривой, но не в части относящейся к поимке нажатия клавиш :), а только в их обработке.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.