【问题标题】:Simulating multiple mouse events模拟多个鼠标事件
【发布时间】:2023-03-10 16:13:01
【问题描述】:

我正在尝试创建一个 UI,在该 UI 中我可以在没有鼠标的情况下与普通 WPF 控件进行交互。我想支持多个游标,因此使用任何常规输入模拟(例如SendInput)都不起作用。我还尝试过交错SendInput 消息来模拟鼠标光标,但这也不起作用(只有一个鼠标输入)。我也有一个约束,我不想使用 Windows MultiPoint。 当我使用MouseEnterEventMouseLeaveEventMouseMoveMouseDownEventMouseUpEvent 检测到我的光标位置在控件上方时,我尝试通过鼠标事件向控件发送事件(在 Button 上测试它)。但除了MouseDownEvent,似乎都不起作用。 这是我如何发送MouseEnterEvent 的示例:

System.Windows.Input.MouseEventArgs e =
    new System.Windows.Input.MouseEventArgs(System.Windows.Input.Mouse.PrimaryDevice, DateTime.Now.Millisecond);
e.RoutedEvent = System.Windows.Input.Mouse.MouseEnterEvent;
elementUnderCursor.RaiseEvent(e);

其中elementUnderCursorUIElement

【问题讨论】:

    标签: wpf events button mouseover mouseenter


    【解决方案1】:

    我想我希望我的 multimose kinect 应用也能做到这一点,但如果你有一个模拟鼠标驱动程序,你只需要弄清楚如何告诉应用程序发生了一个事件是由那个鼠标驱动程序而不是你的 USB 鼠标发生的或 ps/2 鼠标驱动程序。 例如, 发送 mousedown 和 up 事件以模拟鼠标 #1、#2 的鼠标单击。此外,更新鼠标 #1、#2 的鼠标位置。 我的理由是我希望它通过在后台运行与上述程序类似的程序作为服务在任何应用程序中工作。

    【讨论】:

      【解决方案2】:

      更新 dsf 用于模拟虚拟鼠标设备,我正在使用 kinect 进行多鼠标项目,因此请查看站点上的当前进度:http://kinectmultipoint.codeplex.com。 请注意,不能在一夜之间构建多个鼠标驱动程序。 另外,下载windows ddk来模拟鼠标设备。 testgenerichid.wsf 脚本必须针对您的场景进行更改,但这是可能的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-02
        • 2012-09-22
        • 1970-01-01
        相关资源
        最近更新 更多