1

我有一个用 .NET 编写的应用程序。我想增加用户使用鼠标控制我的应用程序的能力,例如高端游戏鼠标,上面有 10-15 个按钮。

这很容易做到吗,还是我需要一个带有我可以使用的 .NET SDK 的鼠标供应商 - 你能推荐任何一个吗?

我希望所有控件都在我的应用程序中,并且只使用鼠标供应商驱动程序。

4

3 回答 3

1

如果我错了,请纠正我,但鼠标上的所有这些额外按钮通常不会映射到某种键盘组合(通常有一个控制面板应用程序可让您指定哪个按钮映射到什么)。如果是这种情况,您应该能够使用 KeyDown 和 KeyUp 事件捕获按钮 4 及以上。

于 2009-06-30T14:57:17.613 回答
0

在 Windows 中,每当您按下某物时,它都会通过 win32 消息队列。这是一些检查如何检索这些消息的代码

现在(您当然需要一个 15 键鼠标)、刹车点或 Console::writeline 或该代码中的任何内容,按下鼠标按钮并砰的一声,您可以获得刚刚按下的消息编号。

之后,您可以检查是否可以将这些按键绑定到普通事件处理程序上。

请注意,有关控制供应商硬件的解决方案不是很便携。假设每个人都有微软鼠标,但我决定从香港购买 20 键鼠标,你必须编写新代码来支持它。我认为您应该针对非常通用的解决方案

于 2009-06-30T15:07:08.157 回答
0

您可以尝试获取 Windows 消息,例如在 WinForms 中,您可以覆盖表单的方法来获取所有消息:

    protected override void WndProc(ref Message msg)
    {
        Console.WriteLine(
          "HWnd:{0}\tLParam:{1}\tWParam:{2}\tMsg:{3}\tResult:{4}",
          msg.HWnd, msg.LParam, msg.WParam, msg.Msg, msg.Result);
        base.WndProc(ref msg);
    }

用你的鼠标稍微玩一下,看看你必须接受什么信息。

于 2009-06-30T15:09:52.300 回答