8

Кажется, что драйвер мыши по умолчанию при соединении с RDP плохо работает с некоторыми приложениями, такими как 3D-игры.

Моя настройка:

  • Windows 2012 R2 с Hyper-V и мощной видеокартой
  • ВМ с настроенной Windows 8.1 Enterprise, RemoteFX и vGPU
  • Соединение с RDP по быстрой ссылке.

Производительность 3D видео отличная, благодаря RemoteFX/vGPU. Это определенно позволяет играм быть очень играбельными по RDP (если бы не мышь).

Проблема в том, что в игре мышь реагирует довольно безумно, но совершенно нормально за пределами 3D-среды. (Например, в игровых меню мышь просто отлично).

Насколько можно судить по экспериментам и многим поискам в Интернете (у многих других была такая же проблема, но решения не найдено) - кажется, что драйвер мыши передает свое относительное местоположение вместо движения.
Эта "теория" хорошо коррелирует с некоторыми объяснениями того, как указатель мыши прыгает внутрь и из окна RDP (например, перемещает его из окна слева, обратно справа), и он ведет себя отлично, то есть мышь на основе местоположения и не на основе движений), а также с поведением в игре - например, если я перемещаю мышь влево, изображение безумно переходит влево; если я затем переместлю его немного вправо, но все еще не полностью назад к центру (то есть мышь все еще находится слева от центра, но перемещается вправо), он продолжит прыгать влево. (Т.е. кажется, что он все еще сообщает о своем местоположении "слева от центра", а не "движется вправо").

Я надеюсь найти ЛЮБОЕ решение для этого. Идеи кого-нибудь?

3 ответа3

6

Ничего себе, после тонны исследований и неудачных попыток, я действительно решил это!
Ну, в основном это решено - это функционально, но не без недостатков.

Благодаря ответу @ 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 ..)


Однако, как указано, есть некоторые недостатки.

  1. Мышь перенаправляется на виртуальную машину RemoteFX - другими словами, на клиентском компьютере больше нет мыши, по крайней мере, когда сеанс удаленного рабочего стола открыт.
    Возможное решение - подключить 2-ю мышь и перенаправить только одну из них. (Я еще не попробовал это, но это должно работать просто отлично).

  2. По какой-то причине при перенаправлении мышь не отображает курсор напрямую в удаленном сеансе. Хотя он все еще работает, он немного сбивает с толку прицеливания, на который указывает ваша мышь.
    Простое решение состоит в том, чтобы включить мышиные следы, при этом длина будет полностью уменьшена. Мыши тропы
    Это будет иметь местоположение мыши, но это немного вяло.

  3. В целом, хотя это решение работает хорошо, мышь все еще немного медленная и вялая.
    Вы можете увеличить скорость мыши, играть с точностью указателя (иногда это может помочь отключить его), и даже изменить настройки реестра ускорения мыши в разделе HKEY_CURRENT_USER\Control Panel\Mouse (Mouse Speed , MouseThreshold1 и MouseThreshold2 соответственно),
    Это поможет смягчить проблему, но не заставит ее исчезнуть.

Таким образом, в целом, это может сделать даже 3D-игры очень играбельными - для казуальных игр, к сожалению, не очень хорошими для игр с подергиванием. (Хотя, если вам это нужно, вы можете просто загрузить металл прямо в этот VHD и использовать оба варианта ....)

2

Очевидно, что remotefx работает только в «абсолютных» режимах ввода планшета , что является источником вашей проблемы. Я не могу найти документацию по его изменению.

Возможно, вам придется подумать об альтернативном режиме удаленного доступа - у меня хорошо работает steam (использование графического процессора nvidia на «хосте» и странного небольшого отсека на другой стороне). У Nvidia есть опция для их карт, но я на самом деле не пробовал.

Короче говоря, нет очевидного способа исправить это с помощью remotefx, если игра не может быть настроена на использование режима ввода, который использует remotefx.

1

Удаленный рабочий стол передает абсолютные движения мыши, чтобы уменьшить количество пакетов перемещения мыши, которые необходимо отправить от клиента к серверу. Это расположение хорошо работает для большинства приложений Windows (электронная почта, просмотр веб-страниц и т.д.). Многие 2D игры тоже подойдут. Тем не менее, игры FPS, как правило, нуждаются в относительных движениях мыши для управления внешним видом мыши, который, к сожалению, не передает Remote Desktop. Потеря относительных данных о движении мыши - это то, что заставляет игру неожиданно поворачивать окно просмотра. Microsoft нужно будет изменить Remote Desktop, чтобы этот игровой сценарий работал. Тем не менее, использование контроллера XBOX для ПК с перенаправлением USB может быть альтернативой для вас.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .