) Я использую приведенный ниже код JAVA для захвата рабочего стола удаленной машины
Robot robot = new Robot();
BufferedImage screenShot = robot.createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));
ByteArrayOutputStream imageBytes = new ByteArrayOutputStream();
ImageIO.write(screenShot, "PNG", imageBytes);
return imageBytes.toByteArray();
Однако захваченное изображение пустое, когда сеанс терминала с удаленным компьютер либо свернут, либо отключен. Благодарим вас за помощь в решении проблемы, по крайней мере, в сценарии минимизации.
Конфигурация: У меня те же проблемы с физическим компьютером под управлением Windows 7 и виртуальная машина под управлением Windows Server 2008 R2.
Дополнительная информация из MSDN:
Почему при отключении от RDP появляется черный экран? http: / /msdn.microsoft.com/en-us/library/aa383015%28VS.85%29.aspx
Вот моя попытка заставить все работать, но ничего из следующего не помогло: {{1} }
Как получить данные, когда окно RDP свернуто? Вы можете заставить драйвер дисплея RDP отправлять данные при уменьшении, попробуйте эти шаги и дайте мне знать, как это происходит: 1) Добавить следующий ключ HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Terminal Server Client \ Создал новое значение DWORD и назвал его RemoteDesktop_SuppressWhenMinimized. В качестве данных значения указано 2.
Примечание. Также попытались добавить раздел реестра в HKEY_LOCAL_MACHINE \ Software \ Wow6432Node \ Microsoft \ Terminal Server Client \ 2) Отключить кэширование растровых изображений ( http://technet.microsoft .com / en-us / library / cc737325 (WS.10).aspx ) В окне "Подключение к удаленному рабочему столу" нажмите "Параметры".
Убедитесь, что на вкладке «Опыт» установлен флажок «Кэширование растровых изображений». Или, чтобы отключить кеширование растровых изображений, снимите флажок Кэширование битовых изображений