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.
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.
Respostas:
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:
screencapture -l$(./GetWindowID "Vuo Editor" "untitled composition") VuoEditorWindow.png
(' ./GetWindowID.m: line 4:
int main (int argc, char ** argv) '
Makefile
e GetWindowID.m
, em seguida, execute o comando make
. Ele produzirá um binário chamado GetWindowID
, 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:
./screencapture.py Chrome -t Stack Overflow