
Se eu quiser fazer uma captura de tela de uma área de trabalho estendida com vários adaptadores/telas, posso 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);
}
Mas, no meu caso, tenho apenas 1 adaptador VGA (integrado), 1 monitor (HDMI) e estou usando o novo recurso de desktops virtuais do Windows 10.
Como faço uma captura de tela da outra área de trabalho virtual usando um programa Java semelhante?
Tentei dobrar a largura do Rectangle
(1920x2), mas do pixel 1920 ao 3840, fica tudo preto na captura de tela tirada.
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);
}