Реєструємо гарячі клавіші для своєї програми в системі, 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 та заголовка активного вікна:

Результат роботи програми:

своєї