O screencapture do utilitário de linha de comando afirma ser capaz de capturar uma única janela sem exigir interação, mas não consigo descobrir o que passar.
-l<windowid> capture this windowsid
Não é o ID do processo do aplicativo.
Para alguns aplicativos, você pode usar AppleScript:
screencapture -l$(osascript -e 'tell app "Safari" to id of window 1') test.png
Porém, ele não funciona com o Chrome .
Os IDs também são mostrados no Quartz Debug (disponível em developer.apple.com/downloads ) se você executar defaults write com.apple.QuartzDebug QuartzDebugPrivateInterface -bool true
.
Eu escrevi um pequeno utilitário de linha de comando para recuperar o ID da janela para aplicativos que não suportam AppleScript. Obtenha aqui: https://github.com/smokris/GetWindowID
Você pode capturar uma janela específica especificando o nome do pacote e o título da janela:
fonte
(' ./GetWindowID.m: line 4:
int main (int argc, char ** argv) 'Makefile
eGetWindowID.m
, em seguida, execute o comandomake
. Ele produzirá um binário chamadoGetWindowID
, que você poderá chamar usando o comando que descrevi na minha resposta.Eu escrevi um utilitário de linha de comando que envolve
screencapture
a biblioteca de janelas de quartzo.Pegue aqui: https://github.com/thismachinechills/pyscreencapture
Use-o assim:
fonte