Функция RegisterHotKey


Функция RegisterHotKey определяет комбинацию "горячая" клавиша для всего пространства системы.

Синтаксис

BOOL RegisterHotKey(
    HWND hWnd,
    int id,
    UINT fsModifiers,
    UINT vk
);

Параметры

hWnd

[in] Дескриптор окна, которое примет сообщения WM_HOTKEY, сгенерированные комбинацией "горячая" клавиша. Если этот параметр - ПУСТО (NULL), сообщения WM_HOTKEY ставятся в очередь сообщений вызывающего потока и должны быть обработаны в цикле сообщений.

id

[in] Определяет идентификатор комбинации "горячая" клавиша. Никакая другая "горячая" клавиша в вызывающем потоке не может иметь тот же самый идентификатор. Прикладная программа должна определить значение в диапазоне от 0x0000 до 0xBFFF. Динамически подключаемая библиотека DLL совместного использования должна определить значение в диапазоне от 0xC000 до 0xFFFF (диапазон, возвращаемый функцией GlobalAddAtom). Чтобы избежать конфликтов с идентификаторами "горячей" клавиши, определенными другими разделяемыми DLL, динамически подключаемая библиотека, чтобы получить идентификатор "горячей" клавиши, должна использовать функцию GlobalAddAtom.

fsModifiers

[in] Определяет клавиши, которые должны быть нажаты в комбинации с клавишей, заданной параметром nVirtKey, чтобы генерировать сообщение WM_HOTKEY. Параметр fsModifiers может быть комбинацией следующих значений:

Значение

Предназначение

MOD_ALT

Любая из двух клавиш ALT должна удерживаться нажатой.

MOD_CONTROL

Любая из двух клавиш CTRL должна удерживаться нажатой.

MOD_SHIFT

Любая из двух клавиш SHIFT должна удерживаться нажатой.

MOD_WIN Любая из двух клавиш WINDOWS должна удерживаться нажатой. Эти клавиши помечены логотипом Microsoft® Windows® 

vk

[in] Определяет код виртуальной клавиши комбинации "горячая" клавиша.

Возвращаемые значения

Если функция завершилась успешно, возвращается значение - не нуль.

Если функция потерпела неудачу, возвращаемое значение - ноль. Чтобы получить дополнительные сведения об ошибке, вызовите функцию GetLastError.

Замечания

Когда клавиша нажимается, система ищет соответствие во всех комбинациях "горячая" клавиша. После обнаружения соответствия, система ставит сообщение WM_HOTKEY в очередь сообщений потока, который зарегистрировал комбинацию "горячая" клавиша. Это сообщение ставится в начало очереди, так что оно удаляется следующим повтором цикла сообщений.

Эта функция не может связывать комбинацию "горячая" клавиша с окном, созданным другим потоком.

Функция RegisterHotKey терпит неудачу, если нажатия клавиш, определенные для "горячей" клавиши были уже зарегистрированы другой "горячей" клавишей.

Если окно, идентифицированное параметром hWnd, уже зарегистрировало комбинацию "горячая" клавиша с тем же самым идентификатором, как и тот, что определен параметром id, новые значения для параметров fsModifiers и vk заменяют предварительно заданные величины для этих параметров.

Windows NT4 and Windows 2000/XP: Клавиша F12 зарезервирована для использования отладчиком всегда, так что она не должна регистрироваться как "горячая" клавиша. Даже если Вы не отлаживаете приложение, F12 резервируется на случай, если отладчик режима ядра или синхронно работающий отладчик - является резидентным.

Смотри также

Обзор Ввод данных с клавиатуры, GlobalAddAtom, UnregisterHotKey, WM_HOTKEY

Размещение и совместимость RegisterHotKey

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Да

Windows NT

Да версии 3.1 и выше

Windows Me

Да

Windows 98

Да

Windows 95

Да

Используемая библиотека

User32.lib

Заголовочный файл

 

- объявлено в

Winuser.h

- включено в

Windows.h

Unicode

Нет

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz