Wow, nach einer Menge Nachforschungen 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, auf den er verlinkt hat, konnte ich dem Beispiel folgen und stellte schließlich fest, dass eine der vielen vom Remotedesktop-Client ActiveX implementierten Schnittstellen eine RelativeMouseMode- Eigenschaft unterstützt! Das klingt genau so, wie ich es brauche, es wird das RDP zwingen, relative Mausbewegungen zu unterstützen!
In diesem Beitrag in den MSDN-Foren habe ich jedoch festgestellt, dass "RelativeMouseMode in RDP-RDSH / RDVH-Szenarien nicht unterstützt wird und nicht verwendet werden sollte", aber ich dachte mir, es ist keine echte Produktionsumgebung, und ich konnte eine verwenden Funktion, die nicht unterstützt wird. Es war auch schlecht dokumentiert, aber es schien, als hätte ich das, was ich brauchte - diese Frage zu StackOverflow gab mir auch Hoffnung, dass es machbar war.
Also machte ich mich an die Arbeit, um eine einfache WinForms-App zum Hosten des ActiveX-Steuerelements zu implementieren, wobei die Eigenschaften der Schnittstelle "... Unsafe" festgelegt waren.
Wie sich herausstellte, meinte Microsoft diesmal mit "nicht unterstützt" "es funktioniert nicht".
Wenn ja, wäre dies eine SO-Frage, tut mir leid, Sie weiterzuleiten (aber ich denke, es ist gut, sie irgendwo dokumentieren zu lassen ...)
Allerdings war nicht alles umsonst, während ich mich mit dem RDP-Protokoll befasste, habe ich mir die RemoteFX-USB-Umleitung angesehen - und das sah nach einer Sackgasse aus, da grundlegende Eingabegeräte (wie Maus, Tastatur, Drucker) explizit blockiert sind vom USB-Umleitungsmechanismus:
Standardmäßig kann auf Geräte in den oben genannten Kategorien in der Remotesitzung mithilfe von Geräteumleitungsmethoden auf hoher Ebene zugegriffen werden. Diese Umleitungsmethoden ermöglichen in den meisten Benutzerszenarien eine optimale Leistung und Abwärtskompatibilität des Geräts. Folglich werden diese Geräte nicht über die RemoteFX-USB-Umleitung angeboten.
Nun, die endgültige Antwort ist, wie sich herausstellt, dass es einen Überschreibungsmechanismus für diesen Block gibt.
Schritt 1: RemoteFX-USB-Umleitung aktivieren
Hier finden Sie eine schöne Ausarbeitung: 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 Redirection
zu Enable
, und ermöglichen Benutzer (oder nur Administratoren) die Rechte. Dann gpupdate /force
und 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 Zeichenfolgenwert mit der Gerätekennung hinzufügen.
Unter diesem Schlüssel habe ich beispielsweise den folgenden Zeichenfolgenwert hinzugefügt:
"GUID_DEVINTERFACE_MOUSE" = "{378DE44C-56EF-11D1-BC8C-00A0C91405DD}"
Abhängig von Ihrer Maus benötigen Sie möglicherweise eine andere Kennung, also YMMV. Aber fang damit an.
Schritt 3: Stellen Sie den RDP-Client so ein, dass die Maus umgeleitet wird.
In dem Artikel aus Schritt 1 heißt es:
Sobald es aktiviert ist, greifen Sie auf die Registerkarte Lokale Ressourcen zu, klicken Sie unter Lokale Geräte und Ressourcen auf Mehr. Daraufhin wird eine neue Einstellung für Andere unterstützt RemoteFX-USB-Geräte angezeigt. Mit dieser Einstellung können Sie viele Arten von USB-Hardware zuordnen, die mit der Vanilla RDP USB-Umleitung nicht möglich waren (siehe unten).
Darunter sollte ein Eintrag für Ihre Maus angezeigt werden. es könnte ein bisschen mehrdeutig sein wie:
Wählen Sie Ihre Maus (oder einen anderen geeigneten Eintrag).
Das ist es! Sie haben jetzt eine Hardware-Maus "direkt" an Ihre VM angeschlossen, mit der die 3D-Spiele die relativen Mausbewegungen direkt aus dem Maustreiber herausziehen können (-ish ..).
Wie bereits erwähnt, gibt es jedoch einige Nachteile.
Die Maus wird auf die RemoteFX-VM umgeleitet. Mit anderen Worten, der Clientcomputer verfügt nicht mehr über eine Maus , zumindest während die Remotedesktopsitzung geöffnet ist.
Eine mögliche Lösung wäre, eine zweite Maus anzubringen und nur eine davon umzuleiten. (Ich habe das noch nicht ausprobiert, aber es sollte gut funktionieren).
Aus irgendeinem Grund zeigt die Maus bei Umleitung keinen Cursor direkt in der Remote-Sitzung an. Während es immer noch funktioniert, ist es etwas verwirrend zu zielen, auf was Ihre Maus zeigt.
Eine einfache Lösung besteht darin, Mouse Trails einzuschalten, wobei die Länge vollständig verringert wird.
Dadurch wird die Position der Maus angezeigt, sie ist jedoch etwas träge.
Obwohl diese Lösung gut funktioniert, ist die Maus insgesamt immer noch etwas langsam und träge.
Sie können die Mausgeschwindigkeit, spielt mit Zeiger - Präzision aufdrehen (manchmal ist es das Ausschalten tatsächlich Hilfe bei dieser) und sogar mit den Mausbeschleunigung Registrierungseinstellungen unter twiddle HKEY_CURRENT_USER\Control Panel\Mouse
( Mouse Speed
, MouseThreshold1
, und MouseThreshold2
jeweils).
Dies wird dazu beitragen, das Problem zu mindern, aber es nicht wirklich verschwinden zu lassen.
Insgesamt kann dies sogar 3D-Spiele sehr spielbar machen - für Gelegenheitsspiele, leider nicht besonders für zuckende Spiele. (Wenn Sie das brauchen, können Sie einfach Metall direkt in diese VHD booten und haben beide Optionen ....)