| Содержание | Последнее обновление: 14.02.2004 | |
|
Как глобально перехватить нажатие клавиши или комбинации клавиш? Автор: OlegGG Для примера, перехватим комбинацию ALT + CONTROL + ENTER. Сначала регистрируем горячую клавишу: bool RHKret = RegisterHotKey(Form1->Handle, // Handle окна, которому отправлять сообщения WM_HOTKEY
0x00F, // УСЛОВНЫЙ идентификатор горячего ключа
MOD_ALT + MOD_CONTROL, // модификаторы
VK_RETURN // код клавиши
);
if (RHKret) // если всё о'кей
{
ShowMessage("Hot Key Registred");
}
Затем размещаем на Form1 TApplicationEvents и в OnMessage пишем: if (Msg.message == WM_HOTKEY) // сообщение наше
{
if (Msg.wParam == 0x00F) // идентификатор наш
{
ShowMessage("www.sources.ru"); // громко кричим "уря"
}
}
Когда горячая клавиша больше не нужна, отключаем ее: UnregisterHotKey(Form1->Handle, // Handle окна 0x00F // наш идентификатор горячего ключа );Вариант #2 - хуки: http://www.xakep.ru/post/13750/default.asp |