Screen Capture in Java erfasst nicht den gesamten Bildschirm
Ich habe einen kleinen Code, den ich verwende, um die Zeit im Auge zu behalten - ganz einfach, alle vier Minuten wird ein Bild von meinem Desktop erstellt, damit ich später noch einmal darüber nachdenken kann, was ich tagsüber gemacht habe , außer wenn ich eine Verbindung zu einem externen Monitor herstelle - dieser Code erstellt nur einen Screenshot meines Laptop-Bildschirms, nicht des größeren externen Monitors, von dem aus ich arbeite - irgendwelche Ideen, wie ich den Code ändern kann? Ich verwende OSX, falls dies relevant ist ...
<code>import java.awt.AWTException; import java.awt.Robot; import java.awt.Rectangle; import java.awt.Toolkit; import java.awt.image.BufferedImage; import java.io.*; import javax.imageio.ImageIO; class ScreenCapture { public static void main(String args[]) throws AWTException, IOException { // capture the whole screen int i=1000; while(true){ i++; BufferedImage screencapture = new Robot().createScreenCapture( new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()) ); // Save as JPEG File file = new File("screencapture"+i+".jpg"); ImageIO.write(screencapture, "jpg", file); try{ Thread.sleep(60*4*1000); } catch(Exception e){ e.printStackTrace(); } } } } </code>
Nach der gegebenen Lösung habe ich einige Verbesserungen vorgenommen, und der Code wird für interessierte Benutzer unter der folgenden Adresse überprüfthttps://codereview.stackexchange.com/questions/10783/java-screengrab