Das Kommandozeilenprogramm screencapture behauptet, ein einzelnes Fenster ohne Interaktion erfassen zu können, aber ich kann nicht herausfinden, was es passieren soll.
-l<windowid> capture this windowsid
Es ist nicht die Prozess-ID der Anwendung.
Das Kommandozeilenprogramm screencapture behauptet, ein einzelnes Fenster ohne Interaktion erfassen zu können, aber ich kann nicht herausfinden, was es passieren soll.
-l<windowid> capture this windowsid
Es ist nicht die Prozess-ID der Anwendung.
Antworten:
Für einige Anwendungen können Sie AppleScript verwenden:
screencapture -l$(osascript -e 'tell app "Safari" to id of window 1') test.png
Mit Chrome funktioniert es jedoch nicht .
Die IDs werden auch in Quartz Debug (verfügbar unter developer.apple.com/downloads ) angezeigt, wenn Sie ausgeführt werden defaults write com.apple.QuartzDebug QuartzDebugPrivateInterface -bool true.

Ich habe ein kleines Befehlszeilenprogramm geschrieben, um die Windows-ID für Apps abzurufen, die AppleScript nicht unterstützen. Laden Sie es hier herunter : https://github.com/smokris/GetWindowID
Sie können dann ein bestimmtes Fenster erfassen, indem Sie den Bundle-Namen und den Fenstertitel angeben:
screencapture -l$(./GetWindowID "Vuo Editor" "untitled composition") VuoEditorWindow.png
(' ./GetWindowID.m: line 4: int main (int argc, char ** argv) '
Makefileund enthält. GetWindowID.mFühren Sie dann den Befehl aus make. Es wird eine Binärdatei mit dem Namen erzeugt GetWindowID, die Sie dann mit dem in meiner Antwort beschriebenen Befehl aufrufen können.
Ich habe ein Befehlszeilenprogramm geschrieben, das screencapturedie Fensterbibliothek von Quartz umschließt.
Hier gehts zum Download: https://github.com/thismachinechills/pyscreencapture
Benutze es so:
./screencapture.py Chrome -t Stack Overflow