【问题标题】:Is there a way to distinguish a track pad from a mouse on Windows?有没有办法在 Windows 上区分触控板和鼠标?
【发布时间】:2014-04-11 02:00:03
【问题描述】:

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

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

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

是否有 API 可以实现这一点?我的支持目标是 Windows 7+。我正在用 C++ 编写游戏。

【问题讨论】:

    标签: c++ winapi mouse trackpad


    【解决方案1】:

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

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

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

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

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

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

    【讨论】:

      【解决方案2】:

      点击此链接:http://msdn.microsoft.com/en-us/library/ms645600%28VS.85%29.aspx

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-19
        • 2019-08-05
        • 1970-01-01
        • 1970-01-01
        • 2013-05-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多