C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 Как глобально перехватить нажатие клавиши или комбинации клавиш / Система (OC) / Borland C++

Как глобально перехватить нажатие клавиши или комбинации клавиш?

Автор: OlegGG
Исходная ссылка: - - -

Вариант #1 - RegisterHotKey:
Для примера, перехватим комбинацию 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