キー一発でアクティブウィンドウをキャプチャして YYMMDD_HHMMSS.jpg で保存する

WinShot は保存時のファイル名に融通が効かないのと、キャプチャに成功したかどうかがわかりづらいのが不満。というわけで、それら不満を解消しつつ、キー一発でガシガシと保存する仕組みを整えた。

概要

  • ホットキーは AutoHotkey で割り当てる
  • ホットキーから呼ぶキャプチャツールは commandcap
    • 今回私がつくったもの
    • コマンドラインでアクティブウィンドウとかフルスクリーンとかキャプチャできる

(1) AutoHotkey

AutoHotkey 1.1.x をインストール。

(2) commandcap

stakiran/commandcap: Simple light commandline screen capture tool.

ダウンロードして適当なディレクトリに配置。動作には Python と Pillow ライブラリが必要。

(3) AHK スクリプトで commandcap を呼び出す

ScrollLock に設定する例。

ScrollLock::run,pythonw D:\work\github\stakiran\commandcap\commandcap.py -a -o D:\data\screenshots --format "$2"

pythonw は DOS 窓を出さずに Python スクリプトを実行するおまじない。

-a はアクティブウィンドウをキャプチャするよ、の意。

-o ディレクトリ で保存先ディレクトリを指定

--format "$2" はファイル名のフォーマットを指定。commandcap にはスロット1 と 2 があり、--format1 あるいは --format2 にて「現在日付時刻をベースとしたフォーマット」を指定できるようになっている(Python の strftime のフォーマット)。で、これらスロットを --format からさらに参照するという感じ。

Q&A

Q: マウスカーソルが揺れるんだけど、これは何?

Ans: カーソルシェイクという commandcap の機能。

キャプチャに成功したことを示すためのもの。

Q: デュアルモニタには対応していない?

Ans: していない。

プライマリモニタ以外だとキャプチャできない。Pillow ライブラリのキャプチャ機能の仕様なので、細かいことは知らない。