Я пытаюсь получить скриншоты с сервера Windows Server с классом Robot.
Проблема в том, что если я не вошел в систему, программа возвращает мне черный экран. В противном случае, я могу получить скриншот отлично.
Я думаю, что есть проблема с сеансами входа в систему. Может быть, есть способ создать сеанс без входа в систему, чтобы получить скриншоты. Потому что я также думаю, что серверный компьютер создает виртуальный дисплей при входе в систему и уничтожает его при выходе из системы.
Можно ли получить снимок экрана без входа в систему?
Вот как Я получаю скриншот:
@SneakyThrows
public static void captureToBase64() {
System.setProperty("java.awt.headless", "false");
try {
BufferedImage image = new Robot().createScreenCapture(new Rectangle(new Dimension(1920, 1080)));
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(image, "jpg", baos);
baos.flush();
byte[] encodeBase64 = Base64.encodeBase64(baos.toByteArray());
String base64Encoded = new String(encodeBase64);
baos.close();
} catch (Exception e) {
e.printStackTrace();
}
}