哇,经过大量的研究和失败的尝试,我实际上解决了这个问题!
好吧,大多数情况下都可以解决-它是功能性的,但并非没有缺点。
感谢@JourneymanGeek的回答,尤其是他所链接的帖子,我得以追踪并最终发现,在远程桌面客户端ActiveX实现的众多接口中,其中一个支持RelativeMouseMode属性!这听起来完全符合我的需求,它将迫使RDP支持相对的鼠标移动!
但是,我确实在MSDN论坛上的帖子中指出“ RDP RDSH / RDVH场景不支持RelativeMouseMode,因此不应使用”,但我想尝试一下,它不是真正的生产环境,因此我可以使用不支持的功能。它的文档也很少,但是似乎我有我需要的东西-StackOverflow上的这个问题也使我希望它是可行的。
因此,我着手实施一个简单的WinForms应用程序,以托管ActiveX控件,并设置了“ ... Unsafe”接口属性。
事实证明,这次Microsoft表示“不支持”,只是“不受支持”。
好吧,如果确实如此,那将是一个特别的问题,很抱歉带您继续(但我认为将其记录在某处很好...)
但是,并非所有事情都是徒劳的,在深入研究RDP协议的所有过程中,我查看了RemoteFX USB重定向-看起来像是死路一条,因为基本输入设备(例如鼠标,键盘,打印机)被明确阻止通过USB重定向机制:
默认情况下,可以使用高级设备重定向方法在远程会话中访问上述类别的设备。这些重定向方法可在大多数用户场景中实现设备的最佳性能和向后兼容性。因此,无法通过RemoteFX USB重定向提供这些设备。
嗯,事实证明,最终答案是对此块有覆盖机制。
步骤1:启用RemoteFX USB重定向
这里有一个很好的阐述:http : //windowsitpro.com/virtualization/q-how-do-i-enable-remotefx-usb-redirection。基本上,在客户端计算机上,您可以使用“本地策略”或“组策略”将其设置RemoteFX USB Device Redirection
为Enable
,并允许用户(或仅是管理员)拥有这些权限。然后gpupdate /force
重启。
步骤2:为鼠标启用重定向替代。
如本MS KB文章所述,您可以设置注册表项以启用特定的设备(或设备类别)以进行USB重定向。
再次在客户端上
HKEY_LOCAL_MACHINE \ SOFTWARE \ Policies \ Microsoft \ Windows NT \ Terminal Services \ Client \ UsbSelectDeviceByInterfaces
您可以添加带有设备标识符的字符串值。
例如,在此键下,我添加了以下字符串值:
“ GUID_DEVINTERFACE_MOUSE” =“ {378DE44C-56EF-11D1-BC8C-00A0C91405DD}”
根据您的鼠标,您可能需要一个不同的标识符,即YMMV。但是从那开始。
步骤3:设置RDP客户端以重定向鼠标。
正如第1步中的文章所述:
启用后,访问“本地资源”选项卡,在“本地设备和资源”下单击“更多”,您将看到一个新的“其他支持RemoteFX USB设备”设置。您可以使用此设置来映射许多普通的RDP USB重定向无法使用的USB硬件,如下所示。
在此之下,您应该看到一个鼠标条目;它可能有点模棱两可,例如:
选择您的鼠标(或其他适当的条目)。
而已!现在,您已经将硬件鼠标“直接”连接到VM,这使3D游戏可以直接从鼠标驱动程序中提取相对鼠标移动(-ish ..)。
但是,如上所述,存在一些缺点。
鼠标将重定向到RemoteFX的VM-换句话说,至少在打开远程桌面会话时,客户端计算机不再具有鼠标。
一种可能的解决方案是连接第二只鼠标,然后仅重定向其中一只。(我还没有尝试过,但是应该可以正常工作)。
出于某种原因,在重定向时,鼠标不会在远程会话中直接显示光标。尽管它仍然有效,但确实使鼠标指向的目标有点混乱。
一个简单的解决方案是打开“ Mouse Trails”(鼠标轨迹),并且将其长度一直减小。
这将显示鼠标位置,但是有点迟钝。
总体而言,虽然此解决方案效果很好,但鼠标仍然有些慢且缓慢。
您可以调高鼠标速度,用指针精确度的游戏(有时把它关闭,实际上这方面的帮助),并且在鼠标加速的注册表设置,甚至玩弄HKEY_CURRENT_USER\Control Panel\Mouse
(Mouse Speed
,MouseThreshold1
,和MouseThreshold2
分别)。
这将有助于减轻问题,但并不能真正消除它。
因此,总的来说,这甚至可以使3D游戏变得非常好玩-对于休闲游戏而言,不幸的是对于抽搐游戏而言并不是很好。(尽管如果需要,您可以将金属直接引导到该VHD中,并同时具有这两种选择...。)