我在.NET 2.0和XP上有一个C#WinForm应用程序。还有一台UltraVNC服务器与我的应用程序在同一台PC上运行。用户可以在PC本地访问应用程序,也可以通过UltraVNC服务器远程访问应用程序。
当应用程序中的某些文本框收到击键时,应用程序想知道击键是来自本地键盘还是来自UltraVNC服务器。这可能吗?鼠标点击也是同样的问题。
答案 0 :(得分:0)
它不会消除击键,但您可以通过以下方式检测RDP会话:
System.Windows.Forms.SystemInformation.TerminalServerSession
答案 1 :(得分:0)
通过设置低级键盘挂钩,您可以在事件中检查LLKHF_INJECTED标志。如果设置了此标志,则其他应用程序(例如,Teamviewer,VNC服务器或其他使用SendInput()或已弃用的keybd_event()的应用程序)已注入了击键。另外,它可能来自可靠的来源(键盘驱动程序或Microsoft远程桌面会话)。请参阅MSDN以了解有关此标志的更多信息。