SetCursorPos无法在远程桌面上工作(从WM_INPUT事件中读取)

时间:2016-02-01 22:36:26

标签: windows mouseevent remote-desktop

WM_INPUT事件中读取鼠标位置并隐藏鼠标光标时,当通过远程桌面使用该应用程序时,似乎SetCursorPos不起作用。

当应用程序未通过远程桌面使用时,相同的确切代码可以正常工作。即我可以在所有方向上获得无限的鼠标移动,因为SetCursorPos在本地访问应用程序时正确地将鼠标光标移动到屏幕中心。

从远程桌面访问SetCursorPos时是否存在限制(可能与安全相关)?或者有解决方法吗?或者也许是因为鼠标位置值是绝对的(设置MOUSE_MOVE_ABSOLUTE位)?

我在WM_INPUT中读取的所有值都不受SetCursorPos中设置的影响。

感谢任何帮助,谢谢!

2 个答案:

答案 0 :(得分:0)

此行为似乎与https://communities.vmware.com/thread/189519中描述的RDP或VM环境中SetCursorPos(和鼠标事件)的处理有关。

答案 1 :(得分:0)

这是一个非常古老的线程,但是在当前的世界形势下,它可能会有所帮助。

要解决RDP和鼠标问题,您需要打开Local Group Policy Editor并转到: Local Computer Policy > Computer Configuration > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Remote Session Environment

Remote Session Environment中,您需要将Use WDDM graphic display driver for Remote Desktop Connections设置为disable

可能Windows 10 Pro是必需的,但我无法检查它。 您需要在要连接到(主机)的机器上进行此更改。 建议重新启动Windows。