Como localizo o windowid para passar para screencapture -l?


25

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:


21

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.


11
Infelizmente, isso não funciona com aplicativos que não sejam aplicáveis ​​pela Apple, como Eclipse ou Google Chrome.
CajunLuke 16/07/2012

Sim, meu aplicativo de destino não é Applescriptable :( Mas obrigado de qualquer maneira.
Gareth Simpson

2
Observe que não é garantido que os IDs de janela correspondam ao ID da janela Quartz, mesmo em aplicativos que podem ser scripts.
31412 Chris Página

A depuração de quartzo parece não existir mais ou foi renomeada ou empacotada?
Gman

9

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

Oi, estou tentando usá-lo, mas não tenho certeza do que estou fazendo. Eu baixei o Makefile, GetWindowID.m. Mas quando inicio o comando ./GetWindowID.m, ele me dá este erro: ./ GetWindowID.m: linha 4: erro de sintaxe próximo ao token inesperado (' ./GetWindowID.m: line 4: int main (int argc, char ** argv) '
KingBOB

11
@Giorgio: Abra uma janela do Terminal e mude para a pasta que contém Makefilee 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.
smokris

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.