screenidture -l에 전달할 windowid를 어떻게 찾습니까?


26

커맨드 라인 유틸리티 화면 캡처는 상호 작용없이 단일 창을 캡처 할 수 있다고 주장하지만 전달해야 할 것을 알 수는 없습니다.

-l<windowid> capture this windowsid

응용 프로그램의 프로세스 ID가 아닙니다.

답변:


22

일부 응용 프로그램의 경우 AppleScript를 사용할 수 있습니다.

screencapture -l$(osascript -e 'tell app "Safari" to id of window 1') test.png

Chrome 에서는 작동하지 않습니다 .

ID 를 실행하면 Quartz Debug ( developer.apple.com/downloads 에서 사용 가능)에도 표시됩니다 defaults write com.apple.QuartzDebug QuartzDebugPrivateInterface -bool true.


1
불행히도, 이것은 Eclipse 또는 Google Chrome과 같은 Apple 이외의 앱에서는 작동하지 않습니다.
CajunLuke

그래, 내 대상 앱은 Applescriptable이 아닙니다 :( 그러나 고맙습니다.
Gareth Simpson

2
스크립트 가능한 응용 프로그램에서도 창 ID는 Quartz 창 ID와 일치하지 않을 수도 있습니다.
Chris 페이지

Quartz 디버그가 더 이상 존재하지 않거나 다른 이름으로 바뀌거나 번들로 제공됩니까?
gman

Quartz Debug는 developer.apple.com/download/more 에서“Xcode 용 추가 도구”에 포함되어 있습니다 .
니콜라스 라일리

9

AppleScript를 지원하지 않는 앱의 Window ID를 검색하는 작은 명령 줄 유틸리티를 작성했습니다. 여기에서 확인하십시오 : https://github.com/smokris/GetWindowID

그런 다음 번들 이름과 창 제목을 지정하여 특정 창을 캡처 할 수 있습니다.

screencapture -l$(./GetWindowID "Vuo Editor" "untitled composition") VuoEditorWindow.png

안녕하세요, 그것을 사용하려고하지만 내가하고있는 일을 잘 모르겠습니다. Makefile, GetWindowID.m을 다운로드했습니다. 내가 명령 ./GetWindowID.m을 시작할 때 그것은 나에게 오류를 제공합니다 ./ GetWindowID.m : 라인 4 : 예기치 않은 토큰 근처의 구문 오류 (' ./GetWindowID.m: line 4: int 주 (int argc, 문자 ** ARGV) '
KingBOB

1
@Giorgio : 오픈이 들어있는 폴더를 터미널 창 변경 Makefile하고 GetWindowID.m다음 명령을 실행은 make. 이라는 이진 파일을 생성하고 GetWindowID내 대답에 설명 된 명령을 사용하여 호출 할 수 있습니다.
smokris

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.