C# 中的虚拟鼠标

问题描述 投票:0回答:3

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

这就像创建两个对象:

鼠标鼠标1,鼠标2;

并像这样使用它们:

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

屏幕上有光标并不重要。我只需要操作(鼠标向下、移动、向上,但分开)

重要的是这些虚拟鼠标应该协同工作,同时在不同的坐标(x,y)上进行单击或向下移动操作。

events mouse virtual
3个回答
0
投票

我不知道如何准确地做到你想要的,但你可以模拟鼠标点击,如果你在不同的坐标中足够快地模拟它们,它们几乎会同时被点击。

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

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

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


0
投票

据我所知,这件事只能靠你自己了。我想你和我的想法是一样的,那就是在同一台计算机上与某人结对工作会很好。每个人都有自己的鼠标和键盘,看着同一台显示器,有时独立工作,有时一起工作。

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

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

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

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

只需我的 0.02 美元。


-1
投票

Windows DDK(驱动程序开发套件)允许您创建一定数量的虚拟鼠标设备并使用 dsf(驱动程序模拟框架)发送输入。除了全局范围之外,我有一个非常相似的目标,因为我想影响鼠标恶作剧,而我不能仅使用 Windows API 本身。查看 generichid vbscript 并编辑它并查看它的注释,它非常容易理解其大部分代码。

我已经创建了您问题的答案,因为我需要为我的 kinectmultipoint 项目模拟多个人 Kinect 设备单独识别为小鼠:http://kinectmultipoint.codeplex.com.

© www.soinside.com 2019 - 2024. All rights reserved.