0

我正在将 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。有谁知道这些的正确代码,或者我在哪里可以找到它们?谢谢。

4

2 回答 2

0

我键入Keys并按 F12 进入定义,它的左 alt 和右 alt 列为164LMenuRMenu165。这对你有帮助还是我完全看错了地方。

于 2012-11-08T15:55:42.403 回答
0

其他研究表明,您无法使用特定的 SHIFT、ALT 和 CTRL 键映射全局热键。然而,经过大量实验和重新阅读遥控器的文档后,我发现他们没有使用标准的 ASCII 键映射作为键。他们将左上角的键标记为 0,然后计数,然后向下计数到右下角的键。因此,0 被映射到 ESC,在我的例子中,18 被映射到 1 键。

于 2012-11-08T18:47:26.373 回答