2013-09-30 3 views
0

HKM_GETHOTEKY возвращает код виртуального ключа и модификаторы, но они не совпадают с обычными кодами виртуальных клавиш? Какова цель HOTKEYF_EXT и как ее использовать?Ключи для ключей клавишных клавиш путают

Если я нажмите F5 горячая клавиша возвращает 0x74 управления, который VK_F5, но когда я нажимаю клавишу со стрелкой вправо, он возвращает 0x27 который VK_RIGHT и бит HOTKEYF_EXT устанавливается на модификатором. Если я использую HKM_SETHOTKEY с VK_RIGHT как виртуальным ключом и без модификаторов, он показывает "Num 6"

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

ответ

1

«Расширенные ключи» - это ключи, которые были добавлены к оригинальной раскладке клавиатуры IBM PC. Который выглядел следующим образом:

enter image description here

Обратите внимание, как он еще не посвятили клавиши управления курсором, они были интегрированы с клавиатуры справа. И обратите внимание, как стрелка вправо соответствует Numpad-6. Специальная клавиша со стрелкой вправо, добавленная к более поздним раскладкам клавиатуры (Enhanced layout с 101 ключом), отличается бит HOTKEYF_EXT.

+0

Могу ли я каким-то образом преобразовать возвращаемое значение HKM_GETHOTKEY в обычный код виртуального ключа? –

+0

Вы уже получаете его, это младший байт возвращаемого значения. Просто используйте retval & 0xff. –

+0

Спасибо, но, к сожалению, я имел в виду; как я могу правильно управлять клавишей «VK_RIGHT»? Если я даю 'VK_RIGHT' только' HOTKEYF_EXT', он отображается как «Num 6». Когда я должен использовать 'HOTKEYF_EXT'? –

Смежные вопросы