Wenn ich einen Screenshot eines erweiterten Desktops mit mehreren Adaptern/Bildschirmen machen möchte, kann ich diesen Code verwenden:
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);
}
In meinem Fall habe ich jedoch nur einen VGA-Adapter (onboard) und einen Monitor (HDMI) und verwende die neue Funktion für virtuelle Desktops von Windows 10.
Wie mache ich mit einem ähnlichen Java-Programm einen Screenshot des anderen virtuellen Desktops?
Ich habe versucht, die Breite Rectangle
(1920 x 2) zu verdoppeln, aber von Pixel 1920 bis 3840 ist auf dem aufgenommenen Screenshot alles schwarz.
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);
}