Ich möchte screencapture -l
damit automatisierte Screenshots von Google Chrome erstellen. Dies setzt voraus, dass Sie die Fenster-ID des laufenden Google Chrome-Prozesses kennen.
Für Apps, die Applescript unterstützen, hat diese Frage die Antwort. Diese Lösung funktioniert jedoch nicht für Apps, die nicht skriptfähig sind, wie Google Chrome.
Gibt es eine Möglichkeit, die Fenster-ID aus einem laufenden Google Chrome-Prozess aus einem Python-Skript abzurufen? Ich weiß, dass die Quartz Debug-App dies kann, aber das ist eine GUI-App, sodass sie nicht per Skript aufgerufen werden kann.
Antworten:
Ich habe das gelöst, indem ich ein Python-Skript geschrieben habe. Wenn Sie es ausführen, können Sie eine Anwendung angeben, für die die Liste der Windows-IDs gesichert werden soll. Wenn Sie keine Anwendung angeben, werden alle Fenster ausgegeben.
Die Fenster werden in der Reihenfolge ihrer Präsentation ausgegeben, sodass alles, was oben in der Liste steht, das "höchste" Fenster ist (angeblich das aktuell aktive, wenn es sichtbar ist).
Beispielausgabe
So erfassen Sie einen Bildschirm automatisch aus einem Shell-Skript
Skript:
quelle
Sie können dies mit GrabFS tun , einem Screenshot-Dateisystem für OS X. (Download am Ende der Seite. Funktioniert für mich unter 10.8.2 mit OSXFUSE einwandfrei. ) Es gibt Ihnen die Texturen aller Prozessfenster als Dateien, die Sie einfach kopieren können . Kopieren Sie den Screenshot erneut, um ihn zu aktualisieren.
Sieht so aus (aus Platzgründen von TIFF in PNG konvertiert): Sie müssen wahrscheinlich ein wenig Shell-Scripting durchführen, um dies zu automatisieren, aber das wird einfach.
quelle
sips -s format png Path/To/Image.tiff --out Path/To/ConvertedImage.png
Dies führt tatsächlich zu einem einzelnen Kopier- / Konvertierungsschritt.