Ничего себе, после тонны исследований и неудачных попыток, я действительно решил это!
Ну, в основном это решено - это функционально, но не без недостатков.
Благодаря ответу @ JourneymanGeek и, в частности, публикации, на которую он ссылался, я смог последовать примеру и в итоге обнаружил, что среди множества интерфейсов, реализованных в ActiveX Client Remote Desktop Client, один из них поддерживает свойство RelativeMouseMode ! Это звучит как то, что мне нужно, это заставит RDP поддерживать относительные движения мыши!
Однако в этом сообщении на форуме MSDN я отметил, что «RelativeMouseMode не поддерживается в сценариях RDP RDSH/RDVH и не должен использоваться», но я решил, что это не настоящая производственная среда, и я был в порядке, используя функция, которая не поддерживается. Это также было плохо документировано, но казалось, что у меня было то, что мне было нужно - этот вопрос на StackOverflow также дал мне надежду, что это выполнимо.
Итак, я приступил к реализации простого приложения WinForms для размещения элемента управления ActiveX, с "...Небезопасный »набор свойств интерфейса.
За исключением того, что, как оказалось, под "неподдерживаемым" на этот раз Microsoft подразумевала "это не работает".
Ну, если бы это было так, это был бы ТАК вопрос, извините, что привел вас (но я думаю, что хорошо, чтобы это было где-то задокументировано ...)
Однако не все было напрасно, во время всего этого углубления в протокол RDP я смотрел на перенаправление USB RemoteFX - и это выглядело как тупик, поскольку основные устройства ввода (такие как мышь, клавиатура, принтер) явно заблокированы из механизма перенаправления USB:
По умолчанию устройства в вышеупомянутых категориях доступны в удаленном сеансе с помощью методов перенаправления устройств высокого уровня. Эти методы перенаправления обеспечивают оптимальную производительность и обратную совместимость устройства в большинстве пользовательских сценариев. Следовательно, эти устройства не предлагаются через перенаправление USB RemoteFX.
Итак, окончательный ответ, как выясняется, заключается в том, что в этом блоке есть механизм переопределения.
Шаг 1. Включите перенаправление USB RemoteFX
Здесь есть хорошая разработка: 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\ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Политики \ Microsoft \ Windows NT \ Службы терминалов \ Клиент \ UsbSelectDeviceByInterfaces
Вы можете добавить строковое значение с идентификатором устройства.
Например, под этим ключом я добавил следующее строковое значение:
"GUID_DEVINTERFACE_MOUSE" = "{378DE44C-56EF-11D1-BC8C-00A0C91405DD}"
В зависимости от вашей мыши, вам может потребоваться другой идентификатор, поэтому YMMV. Но начни с этого.
Шаг 3: Настройте RDP-клиент на перенаправление мыши.
В статье из шага 1 говорится:
После включения откройте вкладку «Локальные ресурсы», нажмите «Дополнительно» в разделе «Локальные устройства и ресурсы», и вы увидите новую настройку «Другие устройства с поддержкой RemoteFX USB». Вы можете использовать этот параметр, чтобы отобразить многие типы USB-устройств, которые вы не смогли использовать с перенаправлением vanilla RDP USB, как показано ниже.
Под этим вы должны увидеть запись для вашей мыши; это может быть немного неоднозначно, например:
Выберите вашу мышь (или другую подходящую запись).
Это оно! Теперь у вас есть подключенная к вашей виртуальной машине аппаратная мышь, которая позволяет 3D-играм извлекать относительные движения мыши непосредственно из драйвера мыши (-ish ..)
Однако, как указано, есть некоторые недостатки.
Мышь перенаправляется на виртуальную машину RemoteFX - другими словами, на клиентском компьютере больше нет мыши, по крайней мере, когда сеанс удаленного рабочего стола открыт.
Возможное решение - подключить 2-ю мышь и перенаправить только одну из них. (Я еще не попробовал это, но это должно работать просто отлично).
По какой-то причине при перенаправлении мышь не отображает курсор напрямую в удаленном сеансе. Хотя он все еще работает, он немного сбивает с толку прицеливания, на который указывает ваша мышь.
Простое решение состоит в том, чтобы включить мышиные следы, при этом длина будет полностью уменьшена.
Это будет иметь местоположение мыши, но это немного вяло.
В целом, хотя это решение работает хорошо, мышь все еще немного медленная и вялая.
Вы можете увеличить скорость мыши, играть с точностью указателя (иногда это может помочь отключить его), и даже изменить настройки реестра ускорения мыши в разделе HKEY_CURRENT_USER\Control Panel\Mouse
(Mouse Speed
, MouseThreshold1
и MouseThreshold2
соответственно),
Это поможет смягчить проблему, но не заставит ее исчезнуть.
Таким образом, в целом, это может сделать даже 3D-игры очень играбельными - для казуальных игр, к сожалению, не очень хорошими для игр с подергиванием. (Хотя, если вам это нужно, вы можете просто загрузить металл прямо в этот VHD и использовать оба варианта ....)