c++ - 热键控制键码困惑

标签 c++ winapi

<a href="http://msdn.microsoft.com/en-us/library/windows/desktop/bb775235%28v=vs.85%29.aspx" rel="noreferrer noopener nofollow">HKM_GETHOTEKY</a>返回虚拟键码和修饰符,但它们与普通虚拟键码不同? HOTKEYF_EXT的目的是什么?我该如何使用它?

如果我按 F5,热键控件返回 0x74这是 VK_F5 ,但是当我按下右箭头键时,它返回 0x27这是 VK_RIGHT并且 HOTKEYF_EXT 位在修饰符上设置。如果我使用 <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/bb775236%28v=vs.85%29.aspx" rel="noreferrer noopener nofollow">HKM_SETHOTKEY</a>VK_RIGHT作为虚拟键且没有修饰符,它显示 "Num 6"

我觉得这很奇怪,我需要能够将任何虚拟键传递给热键控制窗口,因此我需要理解这个 HOTKEYF_EXT修饰符。

最佳答案

“扩展键”是添加到原始 IBM PC 键盘布局的键。看起来像这样:

enter image description here

请注意它还没有专用的光标键,它们与右侧的小键盘集成在一起。并注意右箭头如何匹配 Numpad-6。添加到后来的键盘布局(具有 101 个键的增强型布局)的专用右箭头键由 HOTKEYF_EXT 位区分。

关于c++ - 热键控制键码困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19099969/

相关文章:

delphi - Delphi中如何调用CreateProcess?

c++ - 在 Windows 下获取指向调用堆栈底部的指针并通过地址(如 dladdr)解析符号?

c++ - 无法使用 LoadIcon WINAPI 从资源加载图标

c - 调整权限 SE_DEBUG_NAME

c++ - 全新安装的子弹物理引擎无法正确链接?

c++ - 给定一个带有 UnhandledExceptionFilter 的调用堆栈,导致我的应用程序崩溃的异常是什么?

c++ - 返回对模板类中私有(private)成员的引用

c++ - 寻找提供类似于 Google Go channel 功能的 C 或 C++ 库

c++ - 快速调整 mmap 文件的大小

c - 有没有办法通过名称获取 Windows 中当前进程的函数?