Поведение удаленного рабочего стола с устройством 3D3 и окном RDP сводит к минимуму
В нашем C# WPF мы используем стороннюю (неуправляемую) библиотеку, которая отображает карту.
Мы используем класс System.Windows.Interop.D3DImage.
Сторонняя библиотека использует Direct3D для свойства местоположения поверхности IntPtr32.
Когда я открываю удаленный рабочий стол с другого компьютера и пытаюсь просмотреть клиент WPF, мы видим карту.
Когда клиент интерфейса пользователя WPF запущен, и я минимизирую сеанс RDP или закрываю RDP, я получу исключение:
Direct3D device is lost
Из моего опыта работы с приложениями для потоковой передачи видео, когда окно свернуто, оно прекращает рендеринг изображения, чтобы сохранить полосу пропускания.
Я думаю, что RDP действует так же? Это настраивается? Я хочу продолжить потоковую передачу, даже если окно свернуто.
Я знаю, что в файле.RDP есть дополнительные настройки, как упомянуто здесь.
DirectX установлен в: redirectdirectx:i:1
Частичный ответ пока:
Когда клиентское приложение RDP подключается к службе RDP, когда отображается окно, это режим GUI, когда оно свернуто, это режим GUI-LESS, и компоненты Direct 3D действительно теряются. чтобы сохранить их во время свертывания, ключ реестра должен быть включен ( RemoteDesktop_SuppressWhenMinimized)
1 ответ
С этой страницы: http://www.networkautomation.com/urc/knowledgebase/running-interactive-tasks-in-minimized-remote-desktop-windows/4ecdf43e03470/
Используйте этот ключ для 1 конкретного пользователя (используйте HKLM для всех пользователей):
HKEY_CURRENT_USER \ Программное обеспечение \Microsoft\ Клиент сервера терминалов \RemoteDesktop_SuppressWhenMinimized
тип = DWORD
Ценности:
0 = SUPPRESS_WHEN_MINIMIZED_AUTO
1 = SUPPRESS_WHEN_MINIMIZED_ENABLE
2 = SUPPRESS_WHEN_MINIMIZED_DISABLED