Если я хочу сделать снимок экрана расширенного рабочего стола с несколькими адаптерами/экранами, я могу использовать этот код:
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);
}