うわー、大量の研究と失敗した後、私は実際にこれを解決しました!
まあ、主にそれを解決しました-それは機能的ですが、欠点がないわけではありません。
@JourneymanGeekの回答、特に彼がリンクした投稿のおかげで、私はリードをたどることができ、最終的に、リモートデスクトップクライアントActiveXによって実装された多くのインターフェイスの1つがRelativeMouseModeプロパティをサポートしていることを発見しました。それはまさに私が必要とするもののように聞こえます、それはRDPが相対的なマウスの動きをサポートすることを強いるでしょう!
ただし、このMSDNフォーラムの投稿で、「RelativeMouseModeはRDP RDSH / RDVHシナリオではサポートされていないため、使用しないでください」と書きましたが、実際の運用環境ではないので、問題はありませんでした。サポートされていない機能。それも不十分に文書化されていましたが、私には必要なものがあったようです-StackOverflow に関するこの質問も、それが実行可能であることを希望しました。
そこで、ActiveXコントロールをホストするためのシンプルなWinFormsアプリの実装に取り組み、「... Unsafe」インターフェイスプロパティを設定しました。
結局のところ、「サポートされていない」ということで、今回のマイクロソフトは「動作しない」という意味でした。
まあ、もしそうなら、これはSOの質問になるでしょう。申し訳ありませんが、どこかに文書化しておくのは良いことだと思います...)
ただし、すべてが役に立たなかったわけではなく、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にリダイレクトされます。つまり、少なくともリモートデスクトップセッションが開いている間は、クライアントマシンにはマウスがありません。
可能な解決策は、2番目のマウスを接続し、そのうちの1つだけをリダイレクトすることです。(私はこれをまだ試していませんが、問題なく動作するはずです)。
何らかの理由で、リダイレクトされたときに、マウスはリモートセッションでカーソルを直接表示しません。それでも動作しますが、マウスが指しているものを狙うのは少し混乱します。
簡単な解決策は、Mouse Trailsをオンにし、長さを完全に下げます。
これにより、マウスの位置が表示されますが、少し遅いです。
全体として、このソリューションはうまく機能しますが、マウスはまだ少し遅く、遅いです。
あなたは(時にはそれをOFFこれになり、実際にヘルプ)ポインタの精度で、プレイをマウスの速度を上げることができ、さらに下のマウスの加速レジストリ設定をひねりHKEY_CURRENT_USER\Control Panel\Mouse
(Mouse Speed
、MouseThreshold1
、およびMouseThreshold2
それぞれ)。
これは問題を軽減するのに役立ちますが、実際には解決しません。
したがって、全体として、これは3Dゲームでさえ非常にプレイアブルなものにすることができます。(ただし、必要な場合は、メタルをそのVHDに直接ブートして、両方のオプションを使用できます...)