在我的应用程序中独立于主鼠标使用来自第二个鼠标的事件

Using events from a second mouse in my application independently from the primary mouse

我想在我的 C# WPF 应用程序中独立于我的主鼠标使用第二个鼠标。

因此主鼠标控制光标,鼠标按钮触发通常的单击、拖动、鼠标滚轮等事件

我想从第二只鼠标接收鼠标移动和单击事件,但是这只鼠标不应该移动鼠标光标,也不应该由应用程序本身处理,例如触发按钮命令。

最后我会将鼠标移动X/Y增量和鼠标点击发送到另一个设备来处理它们。

所以像这样

private void Window_MouseMove(object sender, System.Windows.Input.MouseEventArgs e)
    {
        var delta = oldPosition - e.MouseDevice.GetPosition(this);

        DoSomething(delta);

        e.Handled = true;
    }

我找到了一些指向 Microsoft Multipoint SDK 的链接,但这似乎自 2013 年以来就处于非活动状态,我找不到任何好的示例。

另一方面,我发现一些应用程序使用 Raw Input 来识别键盘/鼠标设备,但我无法弄清楚如何在不影响鼠标光标和应用程序的情况下侦听来自第二个鼠标的事件.

有没有人有好的想法或出发点?

好吧,我尝试了很多不同的解决方案,但我对其中一个不满意。

最后我找到了这个不错的解决方案

Interception

符合我的需要。您需要安装一个软件组件,而这个组件似乎会侵入系统,介于鼠标 + 键盘和 OS 内核之间。从现在开始,您可以从您的软件中收听 mouse/keyboard 事件并对其进行修改。