C#抑制多个鼠标的鼠标点击

C#抑制多个鼠标的鼠标点击,c#,winforms,hook,hid,wndproc,C#,Winforms,Hook,Hid,Wndproc,我已经编写了一个应用程序,目前可以处理来自多个鼠标设备的点击 我使用和修改了鼠标点击,就像键盘一样 这很好,但是现在我需要知道,如果我的应用程序处理了点击事件,是否有办法抑制它。该应用程序是一款智力竞赛游戏,因此其理念是,智力竞赛大师将拥有(并且仍然能够使用)1只鼠标,而其他参赛者将拥有自己的鼠标(作为蜂鸣器)。因此,当他们蜂拥而至时,我不希望鼠标点击事件在操作系统(或至少在这个应用程序)中触发 这个概念是人们熟悉的对void WndProc(ref Message Message)的覆盖,因此

我已经编写了一个应用程序,目前可以处理来自多个鼠标设备的点击

我使用和修改了鼠标点击,就像键盘一样

这很好,但是现在我需要知道,如果我的应用程序处理了点击事件,是否有办法抑制它。该应用程序是一款智力竞赛游戏,因此其理念是,智力竞赛大师将拥有(并且仍然能够使用)1只鼠标,而其他参赛者将拥有自己的鼠标(作为蜂鸣器)。因此,当他们蜂拥而至时,我不希望鼠标点击事件在操作系统(或至少在这个应用程序)中触发

这个概念是人们熟悉的对void WndProc(ref Message Message)的覆盖,因此当我不想触发单击事件时,我尝试不调用base.WndProc(ref Message),但这没有起作用

有人能给我指一下正确的方向吗

我应该沿着这条路走吗?我已经看过了,但我似乎不知道如何分别连接到每个鼠标设备

任何帮助都将不胜感激

编辑:


这是一个Windows窗体UI项目,而不是WPF。因此,该方法不起作用。

解决此问题的方法不是WndProc,而是PreFilterMessage()。通过在消息到达表单之前拦截消息,您可以将它们从消息泵中删除,从而使它们永远无法到达已单击的控件。这也适用于表单中的子控件

我回答了这个问题,并在下面的问题中发布了完整的来源:


Microsoft Multipoint SDK中是否有任何内容?-它支持处理来自多个鼠标的输入。我想说的是,你比我强,我应该提到我使用的是Windows窗体UI,而不是WPF。我已经看过多点SDK了。windows钩子不起作用,这需要通过WM_输入进行原始输入。Pinvoke是必需的,所以没有办法做到这一点?