【问题标题】:Virtual Mice in C#C# 中的虚拟鼠标
【发布时间】:2014-05-08 22:23:40
【问题描述】:

我们可以做些什么来实施 VIRTUAL MICE? 我的意思是,我想在整个操作系统中拥有多个鼠标,但它们必须都是虚拟的(我不是在谈论为 PS/2 或 USB 鼠标或 Microsoft 的 MultiPoint Mouse SDK 提供多个鼠标驱动程序的应用程序。)

这就像创建两个对象:

鼠标 mouse1, mouse2;

并像这样使用它们:

mouse1.mouse_event(...); mouse2.mouse_event(...);

在屏幕上有一个 CURSOR 并不重要。我只需要动作(MOUSE DOWN, MOVE, UP for each but separate)

重要的是这些VIRTUAL MICE应该一起工作,同时点击或向下移动具有不同坐标(x,y)的动作。

【问题讨论】:

  • 让我第一个说:什么?通常我至少可以猜出一个问题是关于什么的,但这次不行。

标签: events mouse virtual


【解决方案1】:

我不知道该怎么做,但是你可以模拟鼠标点击,如果你在不同的坐标中以足够快的速度模拟它们,它们几乎会被同时点击。

此链接显示了如何执行此操作:

http://msdn.microsoft.com/en-us/library/ms171548.aspx

如果您将该功能构建到您自己的 Mouse 类中,它可能与您想要实现的类似。

【讨论】:

    【解决方案2】:

    AFAIK,你自己处理这个。我认为您的想法与我的想法相同,在同一台计算机上与某人结对工作会很好。每个人都有自己的鼠标和键盘,并在有时独立工作,有时一起工作时看着同一台显示器。

    我的假设是,这会在 Windows 操作系统的设计中遇到两个重要的限制:

    1) 它只知道一个逻辑鼠标和一个逻辑键盘。插入多个设备只需联合起来移动同一个逻辑鼠标并在同一个文本框中键入。

    2) HID 驱动程序需要通过显示多个逻辑鼠标指针和相同数量的窗口焦点来理解多个“用户”。

    我认为这些可能可以通过兼容层在驱动程序级别克服。应用程序及其控件可能不需要关心有多少鼠标或键盘或“用户”连接到操作系统。它只是接收窗口消息,指示它何时获得焦点、何时移动鼠标、何时按下键等。

    只要我的 0.02 美元。

    【讨论】:

    • spoulson:实际上,微软的 MultiPoint Mouse SDK、CPNMouse(适用于 XP)和其他团队软件都可以实现,但这些都是真正的硬件,我的意思是通过 USB 或 PS/2 连接的鼠标。但同样,由于我还没有测试所有这些,它们可能只在某些应用程序中工作,而不是在全局范围内工作。无论如何,你是对的,一个逻辑鼠标,我认为没有办法为全局活动实现一个虚拟鼠标......
    【解决方案3】:

    windows ddk(驱动程序开发工具包)允许您创建上述数量的虚拟鼠标设备并使用 dsf(驱动程序模拟框架)发送输入。除了全局之外,我有一个非常相似的目标,因为我想影响鼠标恶作剧,而我自己不能只使用 Windows api。查看 generichid vbscript 并对其进行编辑并查看它 cmets 以及它非常直接地理解其大部分代码。

    我已经为您的问题创建了答案,因为我需要在我的 kinectmultipoint 项目中模拟多人 kinect 设备分别识别为鼠标:http://kinectmultipoint.codeplex.com。 任何想要转换为 vb.net 的人请帮忙,因为我可以使用 vbscript 但它不稳定。

    【讨论】:

    • 我有一个多鼠标 vbscript 版本的 dsf,它模拟多个硬件鼠标插入计算机:kinectmultipoint.codeplex.com 需要来自 windows ddk 的 dsfruntime 而不是完整的 ddk,并按照文档页面上的说明进行操作上面的网站。还记得运行 softehcicfg /install 来安装脚本中其他所有内容都附加的 softehcicontroller 设备。
    猜你喜欢
    • 2015-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-05
    • 2018-06-05
    • 2020-07-13
    • 2012-03-13
    • 2013-02-15
    相关资源
    最近更新 更多