Narzędzie screencapture z wiersza poleceń twierdzi, że jest w stanie uchwycić pojedyncze okno bez konieczności interakcji, ale nie wiem, co przekazać.
-l<windowid> capture this windowsid
To nie jest identyfikator procesu aplikacji.
Narzędzie screencapture z wiersza poleceń twierdzi, że jest w stanie uchwycić pojedyncze okno bez konieczności interakcji, ale nie wiem, co przekazać.
-l<windowid> capture this windowsid
To nie jest identyfikator procesu aplikacji.
Odpowiedzi:
W przypadku niektórych aplikacji możesz użyć AppleScript:
screencapture -l$(osascript -e 'tell app "Safari" to id of window 1') test.png
Jednak nie działa z Chrome .
Identyfikatory są również wyświetlane w Quartz Debug (dostępny na stronie developer.apple.com/downloads ), jeśli uruchomisz defaults write com.apple.QuartzDebug QuartzDebugPrivateInterface -bool true
.
Napisałem małe narzędzie wiersza polecenia do pobierania identyfikatora Windows dla aplikacji, które nie obsługują AppleScript. Pobierz tutaj: https://github.com/smokris/GetWindowID
Następnie można uchwycić określone okno, określając jego nazwę pakietu i tytuł okna:
screencapture -l$(./GetWindowID "Vuo Editor" "untitled composition") VuoEditorWindow.png
(' ./GetWindowID.m: line 4:
int main (int argc, char ** argv) '
Makefile
i GetWindowID.m
, a następnie uruchomić komendę make
. Spowoduje to utworzenie pliku binarnego o nazwie GetWindowID
, który można następnie wywołać za pomocą polecenia opisanego w mojej odpowiedzi.
Napisałem narzędzie wiersza poleceń, które się zawija, screencapture
oraz bibliotekę okien Quartz.
Złap to tutaj: https://github.com/thismachinechills/pyscreencapture
Użyj tego w ten sposób:
./screencapture.py Chrome -t Stack Overflow