Einfach wie der Titel schon sagt: Können Sie nur Java-Befehle verwenden, um einen Screenshot aufzunehmen und zu speichern? Oder muss ich ein betriebssystemspezifisches Programm verwenden, um den Screenshot aufzunehmen und ihn dann aus der Zwischenablage zu holen?
java
image
screenshot
jjnguy
quelle
quelle
Antworten:
Ob Sie es glauben oder nicht, Sie können tatsächlich verwenden,
java.awt.Robot
um "ein Bild mit Pixeln zu erstellen, die vom Bildschirm gelesen werden". Sie können dieses Bild dann in eine Datei auf der Festplatte schreiben.Ich habe es gerade versucht und das Ganze endet wie folgt:
HINWEIS: Dadurch wird nur der primäre Monitor erfasst. Informationen zur Unterstützung mehrerer Monitore finden Sie unter GraphicsConfiguration .
quelle
Ich habe Robot nie gemocht, deshalb habe ich meine eigene einfache Methode zum Erstellen von Screenshots von JFrame-Objekten erstellt:
quelle
Robot
Sie mit ihm auch den Rahmen und die Titelleiste des Fensters erhalten können.Wenn Sie alle Monitore erfassen möchten, können Sie den folgenden Code verwenden:
quelle
quelle
quelle
bufferedImage enthält einen vollständigen Screenshot, der mit drei Monitoren getestet wurde
quelle
Sie können verwenden
java.awt.Robot
, um diese Aufgabe zu erreichen.Unten finden Sie den Code des Servers, der den aufgenommenen Screenshot als Bild in Ihrem Verzeichnis speichert.
Und dies ist Client-Code, der auf einem Thread ausgeführt wird und nach einigen Minuten den Screenshot des Benutzerbildschirms aufzeichnet.
quelle
Das Toolkit gibt Pixel basierend auf PPI zurück. Daher wird bei Verwendung von PPI> 100% in Windows nicht für den gesamten Bildschirm ein Screenshot erstellt. Ich schlage vor, dies zu tun:
quelle