1

我正在寻找一种方法来确定运行我的游戏的计算机是否连接了鼠标或触控板,以便我可以相应地设置默认控件。我试图区分您在台式机上找到的典型键盘+鼠标设置与可能有也可能没有外接鼠标但有内置触控板的笔记本电脑。

在伪代码中,这就是我想要实现的目标:

if (hasMouse())
{
    setUpMouseControls();
}
else if (hasTrackPad())
{
    setUpTrackPadControls();
}

有没有一个 API 可以做到这一点?我的支持目标是 Windows 7+。我正在用 C++ 编写游戏。

4

2 回答 2

0

一些触控板具有可以与特殊驱动程序一起使用的特殊功能(如触控板边缘的滚动条)。在这种情况下,可能会检测到某个设备驱动程序(例如 Acme Trackpad 驱动程序)的存在。

但是,这仅适用于某些触控板型号!

您始终可以通过 VID/PID 检测到 USB 触控板。

但是,这两种方法都只适用于您的程序已知的触控板模型。

其他触控板(尤其是 PS/2 触控板 - 可能内置于笔记本电脑中)不会将自己识别为触控板 - 它们“告诉”计算机它们是普通鼠标。

没有机会检测到这样的触控板!

于 2014-04-10T17:27:53.890 回答
0

按照这个链接:http: //msdn.microsoft.com/en-us/library/ms645600%28VS.85%29.aspx

您可以使用 RegisterRawInputDevices 函数来接收 WM_INPUT 消息。使用此消息,您可以确定输入设备的类型,然后设置您的默认控件。

于 2014-04-10T18:00:03.340 回答