スクリーンショットを自動で保存して自分の行動を記録
PCを使っていると、いつのまにか作業を忘れて、Wikipediaとか まとめサイトやYouTubeに見入っている自分に気がつくことがあるよね。
よくあるなあ。多少は息抜きも必要だ…って思うことにしてる。
PC使っているときの時間の使いかたを後から振り返って、自分の時間の使いかたを把握する方法のひとつとして、PC作業画面のスクリーンショットを一定時間で撮影して、画像ファイルに残す方法がある。
いくつか試してみて、
私が採用した方法を紹介するよ。
特徴
- 一度設定すると、Windows再起動後も自動的に実行される。
- 停止・再開も簡単。
- Vista/Win7のaeroにも対応しているらしい。
- マルチディスプレイにも対応。
こういう2つディスプレイがあるとき、以下のように記録される。
記録される画像
記録画像をもっと小さくできない?
設定は変更できるよ。
動作環境
OS: Windows XP
ソフトウェア: MiniCap 1.21.01
ソフトウェア: sleep.exe for Windows 2003 Server
設定手順 MiniCap
http://www.donationcoder.com/Software/Mouser/MiniCap/
で、 MiniCapSetup.exe をダウンロードする。
ファイル名の拡張子を7zに変えて、たとえば MiniCapSetup.exe.7z にして解凍する。
今回は C:\home\MiniCap に MiniCap.exeほかのファイルを配置する。
設定手順 sleep.exe
次に sleep.exe を取得する。
http://www.microsoft.com/downloads/en/details.aspx?DisplayLang=en&FamilyID=9d467a69-57ff-4ae7-96ee-b18c4790cffd
で、 rktools.exe をダウンロードする。
拡張子をcabに変えて、たとえば rktools.exe.cab にして解凍する。
その中身の msiファイルをさらに拡張子をcabに変えて解凍すると、 sleep.exe が見つかる。
その sleep.exe を C:\home\MiniCap に置く。
設定手順 バッチファイル
C:\home\MiniCap のフォルダに minicap.bat というテキストファイルを作る。
中身を次のようにする。
minicap.bat
@echo off mkdir R:\screenCap :loop start C:\home\MiniCap\MiniCap.exe -customdate "$Y-$m-$d $H.$M" -save "R:\screenCap\$customdate$.jpg" -capturedesktop -exit -resizexp 50 -resizeyp 50 -compress 3 sleep 300 goto loop
保存フォルダは R:\screenCap にしているけど、各自の環境にあわせて変更してほしい。変更箇所は2つあるので、どちらも書き換えてね。
2つ?
mkdir の行と、startの行の -saveの次の箇所、の2つだよ。
なるほど。
拡張子は .bat なのかい?
これをバッチファイルというんだ。テキストエディタで作れるけど、これもexeとかと同じ実行ファイルのひとつだ。

- 作者: 本谷裕二
- 出版社/メーカー: 広文社
- 発売日: 1999-08
- メディア: 単行本
設定手順 スタートアップに登録
このbatファイルをダブルクリックしてもいいんだが、「スタートアップ」に登録しておくぞ。
Windows再起動した後も自動で勝手に記録してくれるので、記録し忘れた!ということがなくなるんだ。
「スタートアップ」に登録といっても、
バッチファイルのショートカットを「スタートアップ」フォルダに入れるだけ。
[実行時の大きさ] を「最小化」にしておこう。
[アイコンの変更]ボタンをクリックして、適当なアイコンに変更しておくといい感じだ。
Windows再起動しても実行されるけど、再起動しなくても、スタートアップにあるアイコンまたは C:\home\MiniCap\minicap.bat をダブルクリックで実行だ。
停止・再開
スタートアップに置いたショートカットアイコンのプロパティで、[実行時の大きさ] を「最小化」にしておけば、最初からタスクバーに出てくるだけで、この何も表示してないウィンドウは見なくてすむぞ。
なんで何も表示されてないまっくろウインドウなの?
バッチファイルの1行目に書いた @echo off が効いているので何も表示されないんだ。この行を削除すると、実行した行が文字として表示されるよ。
この画面自動キャプチャを
停止するには、このウィンドウの[x]ボタンでこのウィンドウを閉じればいいだけなので簡単だな。
再開するのも、C:\home\MiniCap\minicap.bat をダブルクリックするだけ。
余談 RAMドライブ
ちなみに私の場合は、RAMドライブに記録しているんだ。
RAMドライブってのは、以下の特徴がある。
利点
- ハードディスクじゃなくてメモリに記録するので、書き込み/読み込みが早い。
- しかしWindows再起動したら中身が消える。
- つまり、電源を切ったらその時点で自分のデスクトップの記録画像が消えるので、PCを盗まれてもプライバシー的に安心。
- ハードディスクに書き込まないので、あとから復元ソフトを使っても復元できないので安心。
問題
- RAMドライブはWindows再起動後ログインしてから40秒ほどでやっと作成される。
問題の対策として、ログイン後100秒待ってから書き込むようにするので、少しbatファイルを変更しているぞ。
書き換えたバッチファイル
minicap.bat
@echo off sleep 100 mkdir R:\screenCap :loop start C:\home\MiniCap\MiniCap.exe -customdate "$Y-$m-$d $H.$M" -save "r:\screenCap\$customdate$.jpg" -capturedesktop -exit -resizexp 50 -resizeyp 50 -compress 3 sleep 300 goto loop
余談 sleep.exe
ちなみに sleep.exeを入れる代わりに、pingコマンドを使う方法もある。
たとえば
sleep 100
の代わりに
ping localhost -n 100 > nul
と書けば動作は同じだ。sleep.exeをダウンロードするのが面倒ならこうしてもいい。
しかしPC動かしているあいだずっとpingを1秒に1回作動させるのはCPUと電力の無駄という気がするので、ここではやっていないぞ。
記録画像の設定
これって5分おきにスクリーンショットを保存してるよね。間隔はどうやって変えるの?
sleep 300 っていうのが、300秒、つまり5分という指定だよ。10分おきなら 600 にすればいいし、1分おきなら 60 だね。
記録画像の大きさとかを設定変更する方法は?
バッチファイルに書いた -resizexp 50 -resizeyp 50 というのが、縦横ともに 50% に縮小します、という設定なんだ。
書き換えて、 -resizexp 100 -resizeyp 100 とすれば縮小しないで実サイズで保存するし、数字を 25 にすれば、縦横4分の1で保存する。
JPGの圧縮率は -compress 10 なら最もキレイだけどファイル容量が大きい、 -compress 1 なら最も見た目はよくないけどファイルサイズが小さい。
JPGじゃなくてPNG保存するなら -save "...jpg" の jpg を png に変更する。
ほかにも細かな設定は http://www.donationcoder.com/Software/Mouser/MiniCap/ に書いてあるよ。