Unberechenbare Mausbewegungen in 3D-Spielen über RDP mit RemoteFX

10315
AviD

Es scheint, dass der Standard-Maustreiber beim Herstellen einer Verbindung mit RDP mit bestimmten Anwendungen, z. B. 3D-Spielen, nicht gut funktioniert.

Mein Setup:

  • Windows 2012 R2 mit Hyper-V und starker Grafikkarte
  • VM mit Windows 8.1 Enterprise, RemoteFX und vGPU konfiguriert
  • Verbindung mit RDP über schnelle Verbindung.

Dank RemoteFX / vGPU ist die 3D-Videoleistung hervorragend. Auf jeden Fall können Spiele sehr gut über RDP gespielt werden (wenn die Maus nicht wäre).

Das Problem ist, dass die Maus im Spiel ziemlich verrückt reagiert - aber außerhalb der 3D-Umgebung völlig normal. (In den Spielmenüs ist zB die Maus in Ordnung).

Am nächsten konnte ich feststellen, sowohl beim Experimentieren als auch beim Online-Suchen (viele andere Personen hatten das gleiche Problem, aber keine Lösung gefunden) - es scheint, dass der Maustreiber seine relative Position anstelle von Bewegung überträgt.
Diese "Theorie" korreliert gut mit einigen Erklärungen, wie der Mauszeiger in das RDP-Fenster hinein- und herausspringt (z. B. aus dem Fenster links, rechts wieder hinein) - und er verhält sich perfekt, dh ortsbasierte Maus und nicht bewegungsbasiert) und auch mit dem Verhalten im Spiel - z. B. wenn ich die Maus ein paar Mal nach links bewege, springt die Ansicht verrückt nach links; Wenn ich ihn dann etwas nach rechts schiebe, aber immer noch nicht den ganzen Weg zurück in die Mitte (dh die Maus ist immer noch links von der Mitte, aber nach rechts), springt sie weiter nach links. (Dh es scheint, es meldet immer noch seinen Ort "links von der Mitte" anstatt "nach rechts zu bewegen").

Ich hoffe, dass ich dafür irgendeine Lösung finde. Ideen jemand?

8
Hm. Wäre das Experimentieren mit einer spielzentrierteren Remote-Access-Plattform eine Option? NVIDIA Streaming und Steam Streaming funktionieren gut für mich (über Gigabit). Auch die relative Position erinnert mich an das Tablettieren. Journeyman Geek vor 9 Jahren 0
Verrückt, dass Jahre später ist es immer noch nicht behoben. :( Shiki vor 6 Jahren 0

3 Antworten auf die Frage

6
AviD

Wow, nach einer Menge Forschung und fehlgeschlagenen Versuchen habe ich das tatsächlich gelöst!
Nun, meistens gelöst - es ist funktional, aber nicht ohne Nachteile.

Dank der Antwort von @ JourneymanGeek und insbesondere des Beitrags, mit dem er verlinkt hat, konnte ich der Leitung folgen und entdeckte schließlich, dass eine der vielen Schnittstellen, die der Remote Desktop Client ActiveX implementiert, eine RelativeMouseMode- Eigenschaft unterstützt. Das klingt wie genau das, was ich brauche, es wird das RDP zwingen, relative Mausbewegungen zu unterstützen!

Ich habe jedoch in diesem MSDN- Forenbeitrag darauf hingewiesen, dass "RelativeMouseMode in RDP-RDSH / RDVH-Szenarien nicht unterstützt wird und nicht verwendet werden sollte", aber ich dachte mir, dass es keine echte Produktionsumgebung ist und ich mit einem Funktion, die nicht unterstützt wird. Es war auch schlecht dokumentiert, aber es schien, dass ich das hatte, was ich brauchte - diese Frage zu StackOverflow gab mir auch die Hoffnung, dass es machbar war.

Also habe ich mich vorgenommen, eine einfache WinForms-App zum Hosten des ActiveX-Steuerelements zu implementieren, wobei die Eigenschaften der Schnittstelle "... Unsafe" festgelegt wurden.


Mit der Ausnahme, dass es sich bei "nicht unterstützt" um dieses Mal "Microsoft" um "nicht funktionieren" handelt.
Nun, wenn dies der Fall wäre, wäre dies eine SO-Frage, es tut mir leid, Sie weiterzuführen (aber ich finde es gut, dass es irgendwo dokumentiert wurde ...)


Allerdings war nicht alles umsonst, während ich mich mit dem RDP-Protokoll befasste, schaute ich mir die RemoteFX USB-Umleitung an - und das sah aus wie eine Sackgasse, da grundlegende Eingabegeräte (z. B. Maus, Tastatur, Drucker) explizit blockiert sind vom USB-Umleitungsmechanismus:

Standardmäßig sind Geräte in den oben genannten Kategorien in der Remote-Sitzung mit Hilfe von Methoden zur Umleitung von Geräten auf hoher Ebene verfügbar. Diese Umleitungsmethoden ermöglichen in den meisten Anwenderszenarien eine optimale Leistung und Abwärtskompatibilität des Geräts. Daher werden diese Geräte nicht über die RemoteFX-USB-Umleitung angeboten.

Nun, die endgültige Antwort ist, dass es einen Override-Mechanismus für diesen Block gibt.


Schritt 1: Aktivieren der RemoteFX-USB-Umleitung
Hier finden Sie eine gute Erläuterung : http://windowsitpro.com/virtualization/q-how-do-i-enable-remotefx-usb-redirection . Grundsätzlich auf dem Clientcomputer, verwenden Sie entweder lokale Richtlinie oder Gruppenrichtlinie festlegen RemoteFX USB Device Redirectionzu Enable, und ermöglichen Benutzern (oder nur Administratoren) die Rechte. Dann gpupdate /forceund neu starten.

Schritt 2: Aktivieren Sie die Umleitungsüberschreibung für die Maus.
Wie in diesem MS KB-Artikel erläutert, können Sie einen Registrierungsschlüssel festlegen, um ein bestimmtes Gerät (oder eine bestimmte Geräteklasse) für die USB-Umleitung zu aktivieren.

Wieder auf dem Client, unter

HKEY_LOCAL_MACHINE \ SOFTWARE \ Policies \ Microsoft \ Windows NT \ Terminaldienste \ Client \ UsbSelectDeviceByInterfaces

Sie können einen String-Wert mit der Geräte-ID hinzufügen.
Zum Beispiel habe ich unter diesem Schlüssel den folgenden String-Wert hinzugefügt:

"GUID_DEVINTERFACE_MOUSE" = ""

Abhängig von Ihrer Maus benötigen Sie möglicherweise eine andere Kennung, so YMMV. Aber fang damit an.

Schritt 3: Stellen Sie den RDP-Client so ein, dass die Maus umgeleitet wird.
Wie der Artikel aus Schritt 1 feststellte:

Öffnen Sie nach der Aktivierung die Registerkarte Lokale Ressourcen, klicken Sie unter Lokale Geräte und Ressourcen auf Mehr, und sehen Sie die neue Einstellung Andere unterstützt RemoteFX USB-Geräte. Sie können diese Einstellung verwenden, um viele Arten von USB-Hardware abzubilden, die Sie mit der Vanilla-RDP-USB-Umleitung nicht erreichen konnten (siehe unten).

Darunter sollten Sie einen Eintrag für Ihre Maus sehen. Es könnte ein bisschen mehrdeutig sein, wie:

Umleitung anderer Geräte

Wählen Sie Ihre Maus (oder einen anderen geeigneten Eintrag).

Das ist es! Sie haben jetzt eine Hardwaremaus "direkt" an Ihre VM angeschlossen, mit der die 3D-Spiele die relativen Mausbewegungen direkt aus dem Maustreiber ziehen können (-ish ..).


Wie bereits erwähnt, gibt es jedoch einige Nachteile.

  1. Die Maus wird an die RemoteFX-VM umgeleitet, dh der Client-Computer hat keine Maus mehr, zumindest während die Remote Desktop-Sitzung geöffnet ist.
    Eine mögliche Lösung wäre, eine zweite Maus anzuschließen und nur eine davon umzuleiten. (Ich habe es noch nicht probiert, aber es sollte gut funktionieren).

  2. Aus irgendeinem Grund zeigt die Maus bei der Umleitung nicht direkt einen Cursor in der Remote-Sitzung. Obwohl es noch funktioniert, ist es etwas verwirrend, wenn Sie darauf zielen, worauf Ihre Maus zeigt.
    Eine einfache Lösung besteht darin, Mouse Trails einzuschalten, wobei die Länge ganz heruntergedreht wird. Mausspuren
    Dadurch wird die Mausposition angezeigt, sie ist jedoch etwas träge.

  3. Obwohl diese Lösung gut funktioniert, ist die Maus insgesamt etwas langsam und träge.
    Sie können die Mausgeschwindigkeit wieder auftauchen, spielen mit Zeiger - Präzision (manchmal ist es das Ausschalten wird mit diesem tatsächlich helfen) und sogar mit den Mausbeschleunigung Registrierungseinstellungen unter twiddle HKEY_CURRENT_USER\Control Panel\Mouse( Mouse Speed, MouseThreshold1, und MouseThreshold2jeweils).
    Dies wird dazu beitragen, das Problem zu mildern, aber nicht wirklich zu beseitigen.

Insgesamt können so sogar 3D-Spiele sehr gut spielbar sein - für gelegentliches Spielen leider nicht besonders gut für Twitch-Spiele. (Obwohl, wenn Sie das brauchen, können Sie Metal direkt in diese VHD booten, und haben beide Optionen ....)

Gut gemacht ... hoffentlich kann jemand diese Informationen auch anderswo einsetzen. Twisty Impersonator vor 9 Jahren 0
2
Journeyman Geek

Offensichtlich hat remotefx nur "absolute" Eingabemodi im Tablet-Stil, was die Ursache Ihres Problems ist. Ich kann keine Dokumentation zum Ändern finden.

Möglicherweise müssen Sie einen alternativen Fernzugriffsmodus in Betracht ziehen - Steam funktioniert gut für mich (mit einer NVIDIA-GPU auf dem "Host" und einer kleinen Dinky-Bay-Box am anderen Ende). Nvidia hat eine Option für ihre Karten, aber das habe ich nicht wirklich versucht.

Kurz gesagt, es gibt keine offensichtliche Möglichkeit, dies mit remotefx zu beheben, es sei denn, das Spiel könnte auf den Eingabemodus eingestellt sein, den remotefx verwendet.

1
XBOX Controller

Remote Desktop überträgt absolute Mausbewegungen, um die Anzahl der Mausbewegungspakete zu reduzieren, die vom Client an den Server gesendet werden müssen. Diese Anordnung funktioniert gut für die meisten Windows-Anwendungen (E-Mail, Surfen im Internet usw.). Viele 2D-Spiele sind auch gut damit. FPS-Spiele benötigen jedoch in der Regel relative Mausbewegungen, um den Maus-Look zu steuern, den Remote Desktop leider nicht überträgt. Der Verlust relativer Mausbewegungsdaten führt dazu, dass das Spiel den Viewport unerwartet dreht. Microsoft müsste Remote Desktop ändern, damit dieses Spielszenario funktioniert. Die Verwendung des XBOX-Controllers für einen PC mit USB-Umleitung kann jedoch eine Alternative für Sie sein.

Danke, das wusste ich irgendwie und wiederholte hauptsächlich @ Journeymans Antwort ... aber der Controller ist eine gute Lösung (obwohl er mir nicht helfen wird ...) AviD vor 9 Jahren 0