screencapture -lに渡すwindowidを見つけるにはどうすればよいですか?


26

コマンドラインユーティリティscreencaptureは、対話を必要とせずに単一のウィンドウをキャプチャできると主張していますが、何を渡すかわかりません。

-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などのApplescriptを使用できないアプリでは機能しません。
CajunLuke

ええ、私のターゲットアプリはApplescriptable :(はありませんが、とにかくありがとうございました。
ギャレス・シンプソン

2
スクリプト可能なアプリケーションであっても、ウィンドウIDがQuartzウィンドウIDに対応することは保証されないことに注意してください。
クリスページ

クォーツデバッグはもう存在しないようですが、それ以外の場合は名前変更またはバンドルされていますか?
-gman

Quartzデバッグは、developer.apple.com / download / moreで入手できる「Xcodeの追加ツール」に含まれています。
ニコラスライリー

9

AppleScriptをサポートしていないアプリのウィンドウ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型のmain(int型のargc、char型** ARGV「)
KingBOB

1
@Giorgio:ターミナルウィンドウを開き、とを含むフォルダーに移動してMakefileからGetWindowID.m、コマンドを実行しmakeます。これは、というバイナリを生成しGetWindowIDます。これは、回答で説明したコマンドを使用して呼び出すことができます。
スモクリス

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.