スクリーンショットを自動で保存して自分の行動を記録

追記 2012-01-18

http://d.hatena.ne.jp/itouhiro/20120118 に改訂版を書きました。


[しゃべり担当] 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とかと同じ実行ファイルのひとつだ。

Windowsで使える簡単・便利なバッチファイル

Windowsで使える簡単・便利なバッチファイル

  • 作者: 本谷裕二
  • 出版社/メーカー: 広文社
  • 発売日: 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/ に書いてあるよ。




Windowsコマンドプロンプト スパテク242 Vista/XP/2000対応 (スパテクシリーズ)

Windowsコマンドプロンプト スパテク242 Vista/XP/2000対応 (スパテクシリーズ)

  • 作者: 飯島弘文
  • 出版社/メーカー: 翔泳社
  • 発売日: 2008-03-14
  • メディア: 単行本(ソフトカバー)