Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
确定(以编程方式)谁使用C#或C+控制PC上的鼠标+;_C#_C++_Windows_Mouse_Pc - Fatal编程技术网

确定(以编程方式)谁使用C#或C+控制PC上的鼠标+;

确定(以编程方式)谁使用C#或C+控制PC上的鼠标+;,c#,c++,windows,mouse,pc,C#,C++,Windows,Mouse,Pc,有没有办法通过编程确定谁在控制PC上的鼠标(以及哪个鼠标)?我最近安装了LogMeIn(LogMeIn.com),想知道是否有可能(1)在程序中判断鼠标是由直接用户还是远程用户单击/移动的,(2)编写一个独立程序,只显示鼠标事件(在任何应用程序上),以及鼠标事件是否由本地或远程用户生成。我对Win32钩子有点熟悉,但不认为它们能提供此类信息。关于(1)这似乎是一个共同的要求。例如,“如果用户是本地人,则仅允许用户完成与密码更改相关的按钮按下…”或类似内容 第二个重要的问题(实际上只是学术兴趣)是

有没有办法通过编程确定谁在控制PC上的鼠标(以及哪个鼠标)?我最近安装了LogMeIn(LogMeIn.com),想知道是否有可能(1)在程序中判断鼠标是由直接用户还是远程用户单击/移动的,(2)编写一个独立程序,只显示鼠标事件(在任何应用程序上),以及鼠标事件是否由本地或远程用户生成。我对Win32钩子有点熟悉,但不认为它们能提供此类信息。关于(1)这似乎是一个共同的要求。例如,“如果用户是本地人,则仅允许用户完成与密码更改相关的按钮按下…”或类似内容

第二个重要的问题(实际上只是学术兴趣)是判断本地用户是在使用鼠标还是触摸板

谢谢,
Dave

您可以钩住希望从中获取信息的windows设备API,如果鼠标移动,则当用户移动鼠标时可能不会调用API,但如果logmein移动,则可能会调用一些SetMousePos,如C WinAPI。

发布后,我看到这篇文章基本上回答了这个问题

我想补充一点,对于那些想使用WPF而不是WinForms(如上面的示例所用)的人,请查看ComponentDispatcher.ThreadFilterMessage(对于WPF)或IMessageFilter(Windows窗体)


我根据上面的帖子写了两个程序(一个基本上是上面的帖子,还有一些小的添加,另一个是WPF(与WinForms相反))。如果我能理解GitHub,我将发布所有代码并在这里添加注释。但是上面的帖子肯定会给你所有你需要的。

根据你问题的最后一部分,我想你会使用类似的东西来检测电脑上是否有触摸板或鼠标或两者都处于活动状态。谢谢你,我会查出来的。最初看一眼DevCon,我不知道如何使用它来确定哪个鼠标处于控制状态。看起来您可以使用它列出所有鼠标设备。当然,我不认为这有助于解决确定是否有人通过LogMeIn控制事情的问题(正如你所指出的)。谢谢自从发布后,我在stackoverflow上发现了这个链接:在公认的答案中,声明只有通过创建自己的鼠标驱动程序才能(可靠地)完成。听起来好像要做很多工作!Dave也许你可以根据运动的平稳性不可靠地确定鼠标是否来自本地机器。我注意到,使用Teamviewer,鼠标在本地机器上有一种与标准平滑鼠标运动不同的签名运动。因此,与具有更高运动分辨率的本地机器相比,可能位置更新的像素间隔更大。只是一个想法。你能分享一些使用WPF的例子吗。我已经很久没有做过这个了。无论它值多少钱,请结帐: