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.
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:
źródło
(' ./GetWindowID.m: line 4:
int main (int argc, char ** argv) 'Makefile
iGetWindowID.m
, a następnie uruchomić komendęmake
. Spowoduje to utworzenie pliku binarnego o nazwieGetWindowID
, 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:
źródło