0

我想创建一个简单的应用程序,它在运行时会等待特定的键或键组合,甚至是鼠标上的按钮按下。我正在使用 MouseKeyHook API 来获取此信息,但是我遇到了一些问题。

这似乎工作得很好,因为我可以将按钮的字符串值与我保存的值进行比较。现在这是真正的问题开始的地方。每当我按下键盘上的任何可编程按钮时,我都没有得到任何输出?为什么?

private void GlobalHookKeyPress(object sender, KeyPressEventArgs e)
{
    HotKey.Text = e.KeyChar.ToString();
}

private void GlobalHookMouseDownExt(object sender, MouseEventExtArgs e)
{
    HotKey.Text = e.Button.ToString();
}

使用 MouseKeyHook API 进行挂钩时,我能够获得两个鼠标按钮 XButton1 和 XButton2,但我的键盘按钮却一无所获。

在此处输入图像描述

4

1 回答 1

0

键盘上的可编程键倾向于使用需要供应商驱动程序软件的特定 API。该软件将按键映射到转换为标准操作的操作(或操作序列)。例如,按下按钮 X 可能对应于A连续按下该键五次,您的软件应该能够拾取这 5 次按下。

鼠标按钮非常通用,我相信 Windows API 允许使用 8 个标准按钮(请参阅此处的 API 参考)。除此之外,还需要再次使用特定的供应商驱动程序并映射这些按钮。

于 2015-11-23T01:12:39.270 回答