【macOS】コマンドラインから現在開いているアプリのスクリーンショットを撮る
実行するコマンド
screencapture -l$(osascript -e 'tell app "App名" to id of window 1') ~/Desktop/image.png
例
iTerm2のスクリーンショットを撮る場合
screencapture -l$(osascript -e 'tell app "iTerm" to id of window 1') image.png
解説
ざっくり解説していきます。
screencapture
macOSには、screencapture
コマンドが標準機能として提供されています。
これはcmd + shift + 3
など、ショートカットでスクリーンショットを撮った時に実行されるコマンドで、ショートカット以外でもコマンドライン上から実行することが可能です。
screencaptureにはいくつかのオプションがあり、今回は特定のwindowIDのウィンドウをキャプチャする-l
オプションを使用しました。
これまでcmd + shift + 4
で領域選択でキャプチャを撮っていましたが、このコマンドを知っておくとと結構便利かも
$ man screencapture
...中略
-l <windowid> Captures the window with windowid.
...
特定のアプリケーションからWindowIDを取得する方法
起動しているアプリケーションからWindowIDを取得するには、AppleScriptから実行する必要があります。
そこで、osascript
コマンドをターミナルから実行します。osascript
は、コマンドラインからAppleScriptが実行できるコマンドです。
注意
Chrome・LINE・メッセージなど、一部、撮影できないアプリもありました。
原因はまだしっかり把握できていないので、ご存知の方はご教示いただけると幸いです
参考
Author And Source
この問題について(【macOS】コマンドラインから現在開いているアプリのスクリーンショットを撮る), 我々は、より多くの情報をここで見つけました https://qiita.com/nekoze_da/items/c38994d1526bc7224e60著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .