Si quiero tomar una captura de pantalla de un escritorio extendido con múltiples adaptadores/pantallas, puedo usar este código:
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);
}
Pero, en mi caso, solo tengo 1 adaptador VGA (integrado), 1 monitor (HDMI) y estoy usando la nueva función de escritorios virtuales de Windows 10.
¿Cómo tomo una captura de pantalla del otro escritorio virtual usando un programa Java similar?
Intenté duplicar el ancho de Rectangle
(1920x2), pero de 1920 a 3840 píxeles, está todo negro en la captura de pantalla tomada.
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);
}