Реєструємо гарячі клавіші для своєї програми в системі, ASD-SOFT
Програмування. Теорія та практика.
Здрастуйте, шановні колеги!
У цьому прикладі показано, як можна зареєструвати гарячі клавіші для вашої програми в системі, які будуть спрацьовувати навіть якщо вікно вашої програми не активне або приховано.
Отже, для реєстрації клавіш нам знадобитьсяAPI функціяRegisterHotKey. Ось її опис:
hWnd - Handle вікна, якому надсилатиметься повідомлення при натисканні гарячої клавіші. id — Код, який ви призначаєте гарячою клавішею і за яким ідентифікуватимете натискання. Не можна додати кілька кнопок з однаковим id. fsModifiers — Модифікатори, які вказують на необхідність натискання системних клавіш разом із зазначеною клавішею, такі як Alt, Ctrl, Win тощо. vk — Код клавіші, при натисканні на яку надсилатиметься повідомлення. Список кодів клавіш можна переглянути за посиланням: Virtual-Key Codes
При завершенні програми ми повинні видалити зареєстровану гарячу клавішу процедуроюUnregisterHotKey.
hWnd - Handle вікна. id — Код гарячої клавіші, який ми вказували під час реєстрації.
Тепер створимо саму програму, яка буде реагувати на натискання клавішCtrl+G і записуватиHandle і заголовок поточного активного вікна.
Додамо константу, яка визначатиме реєстраційний код гарячої клавіші:
У обробнику подіїOnCreate форми додаємо код, який зареєструє гарячу клавішу:
47 - Код клавіші "G"
У обробнику подіїOnDestroy видалимо реєстрацію:
При натисканні на гарячу клавішу нашому додатку надсилатиметься повідомленняWM_HOTKEY, яке нам потрібнообробити. Для цього в розділіprivate форми додамо процедуру обробник подіїWM_HOTKEY :
І в розділіimplementation додамо код процедури для отримання Handle та заголовка активного вікна:
Результат роботи програми:
