【问题标题】:Multiple mouse cursors on Windows 7Windows 7 上的多个鼠标光标
【发布时间】:2011-02-09 14:15:36
【问题描述】:

我们将CPNMouse 用于在Windows XP 上运行的应用程序。一个鼠标设备从正常的事件队列中分离出来,所以我们可以自己获取它的位置和事件并绘制光标。

很遗憾,CPNMouse 不能在 Windows Vista/7 上运行(请参阅 here)。是否有任何库/SDK 在 Windows 7 上提供相同的功能?

澄清一下 - 我们希望“正常”光标存在并绘制另一个光标,该光标应该映射到不同的鼠标设备。


更新: CPNMouse 不再受支持,并且它以前的“开源”从 SourceForge 中撤出。 Only this legacy documentation page exists on the official CPN Tools site.

看起来只有商业产品可用...

如果有人有 SourceForce 的原始源代码的副本,请在此处发布链接...假设原始许可证是标准 SourceForge(开放共享/扩展)变体,则应该可以将其分叉为新的继续开发的项目(免费工具)。

【问题讨论】:

    标签: windows-7 mouse multipoint multiple-mice


    【解决方案1】:

    看看MultiPoint SDK,它允许在同一显示器上最多显示 25 个光标,它还支持 Windows 7。

    【讨论】:

    • 对不起,我忘了说该应用程序不使用 .NET 框架。它使用原生 C++ 和 Qt 4。
    • 我和我打赌很多其他人都在寻找一种在运行全屏应用程序或游戏时使用第二个显示器的方法。游戏就是最好的例子,它们通常拥有所有活跃输入的所有权。我想用我的备用显示器来操作游戏集成网站(很多都有,例如战地 4)或者只是在玩的时候浏览和控制我自己的音乐播放列表。为此,只有操作系统解决方案(而不是特定应用程序使用的 API)才能解决问题。
    【解决方案2】:

    您应该使用 windows ddk 中的 dsf 创建一个模拟鼠标设备,然后任何程序都可以接受来自该特定模拟鼠标设备的输入并自己绘制指针。因此,您创建的任何程序都将包含多个鼠标设备。遗憾的是,尽管 Windows 7 操作系统不支持多个指针,但它们不可能有多个指针。因此,您必须自己将指针绘制到屏幕上。 恐怕关键是你需要自己为鼠标画一个指针

    【讨论】:

    • 这正是 CPNMouse 正在做的事情
    • dsf 用于测试从 windows xp 到 windows 7 的工业线设备,包括中间的服务器版本。
    • 我的 kinectmultipoint.codeplex.com 页面上有更好的版本。目前正在研究中。它在 dotnet 中,但我几乎完成了,您可以在 wdk 中获取默认的 c/c++ 代码并编译并获取我在 vbscript 文件中使用的 softehci 和其他 dll 文件。我正在寻找 Windows 8 的替代品,但到目前为止它们似乎还没有。尝试查看我的代码,尽管您可以修改它以与 c++ 不同的方式存储鼠标数据。您可以使用多点并让它为您绘制鼠标设备,或者使用一些 dsf 代码来检测鼠标设备的数量并绘制到屏幕上。
    • CPNmouse 可能在我上次发帖后已经更新。处理多个鼠标设备的 c++ 中的任何代码都需要具有手动绘制特定鼠标指针并更新其位置的代码。您可以使用其他 API(例如 CPNmouse)来完成此操作,但在最后一次尝试中,CPNMouse 的表现不如我所愿。
    【解决方案3】:

    您需要 Windows 平台 SDK 附带的“原始输入”API:MSDN: About Raw Input

    【讨论】:

    • 我知道 RawInput API,它在 Windows XP 中也可用。问题是我不能像我在问题中提到的那样使用它:在窗口应用程序中,不可能只为其中一个设备绘制光标。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-12
    • 2011-09-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多