Можно ли сделать скриншот вторичного рабочего стола Windows 10 с использованием Java?
Если я хочу сделать снимок экрана расширенного рабочего стола с несколькими адаптерами / экранами, я могу использовать этот код:
static void takeScreenShot(String path) throws AWTException, IOException {
Rectangle screenRect = new Rectangle(0, 0, 0, 0);
for (GraphicsDevice gd : GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()) {
screenRect = screenRect.union(gd.getDefaultConfiguration().getBounds());
}
BufferedImage capture = new Robot().createScreenCapture(screenRect);
File output = new File(path);
ImageIO.write(capture, "bmp", output);
}
Но в моем случае у меня есть только 1 адаптер VGA (встроенный), 1 монитор (HDMI), и я использую новую функцию виртуальных рабочих столов Windows 10.
Как сделать снимок экрана другого виртуального рабочего стола, используя аналогичную программу Java?
Я попытался удвоить ширину Rectangle
(1920x2), но с пикселя 1920 до 3840 на снятом скриншоте все черное.
static void takeScreenShot(String path) throws AWTException, IOException {
Rectangle screenRect = new Rectangle(0, 0, 1920*2, 1080);
BufferedImage capture = new Robot().createScreenCapture(screenRect);
File output = new File(path);
ImageIO.write(capture, "bmp", output);
}