我正在将USB遥控器连接到我的软件,并且需要注册全局热键才能使用它。我有代码,它按预期工作,但当我挂起遥控器时,我发现它在处理修改键时需要特定的左或右Alt。
换句话说,现在我将全局热键设置为接受ALT + SHIFT + 0来运行特定功能。当我挂上遥控器时,我意识到他们的映射需要识别特定的Key修饰符。因此,我需要专门搜索L-ALT + L-SHIFT + 0.我搜索了这些修改器映射,但是找不到任何说明它们的东西。我只能找到一般ALT键的修饰符,而不是特定的L-ALT修饰符。
目前,我的钥匙定义如下:
public const int NOMOD = 0x0000; // No HotKey
public const int ALT = 0x0001; // ALT
public const int CTRL = 0x0002; // CTRL
public const int SHIFT = 0x0004; // SHIFT
public const int WIN = 0x0008; // WIN button
public const int WM_HOTKEY_MSG_ID = 0x0312; // Windows message ID for HotKey
我试图找到L-Alt,L-CTRL和L-Shift代码的映射,但是没有成功。它们似乎不是ASCII。有谁知道这些的正确代码,或者我能找到它们的地方?感谢。
答案 0 :(得分:0)
我输入Keys
并点击F12转到定义,它已将alt和right alt列为LMenu
和RMenu
,其值为164和165.这有用吗?你或我完全在错误的地方寻找。
答案 1 :(得分:0)
其他研究表明,您无法使用特定的SHIFT,ALT和CTRL键映射全局热键。但是,在经过大量实验并重新阅读远程文档后,我发现他们没有使用标准的ASCII密钥映射作为密钥。他们将左上方的键标记为0,然后向下计数,然后向下计数到右下方的键。因此,0映射到ESC,在我的情况下,18映射到1键。