ソフトウェアの開発をしている会社だと、どの作業を何分やったかを日報に入れろと言われることが多いのではないでしょうか?
そんな事言われても忙しいときは記録取るのが難しいので、「アクティブウインドウの記録を取ればだいたい何をしていたのかわかるのでは?」という前提でそれをするためのスクリプトを作ってみました。使えると嬉しい人が他にもいそうなので、公開しておきます。
タイトルバーに編集中のファイル名が出る種類のエディタをお使いのプログラマでしたらこのスクリプトでだいたい何をしていたか後で振り返ることができます。
出来上がったスクリプト
以下にあります:
https://github.com/aikige/homeBinWin/blob/master/dumpForegroundWindow.py
基本的なコンセプト
-
pywin32 に含まれている
win32gui.GetForegroundWindow
および、win32gui.GetWindowText
を使って現在フォアグラウンドで動作しているウインドウのタイトルを取得します。 - 取得したものをタイムスタンプ付きでダンプします。
- 上記の処理を定期実行(間隔は引数で変更可能)します。
- ログは日付ごとのファイルに記録されます。とりあえず現在はファイルと標準出力の両方にログが出力されるようにしてあります。
スクリプトを動かすための前準備
pywin32がまだ入っていない場合はインストールしてください。
pip install pywin32
動作確認した環境
Python 3.8.1
pywin32 Version 227
※win32guiは、pywin32に含まれているようです。
参考にしたもの
関連する記事
余談
ダンプされたファイルを Vim などで開くとデコードエラーが出ていたので、原因を解析しました。
Windows 10 の場合、タイトルバーは UTF-8 の範囲の文字が利用されているようですが、UTF-8 には CP932 の範囲外の文字があるため、Vim の内部エンコーディングを CP932 にすると、それが原因でデコードエラーになる事がわかりました。
対策として、取得したタイトルから、CP932 の範囲外の文字を削除する処理をスクリプトに追加しました。
動作確認に使ったVim: VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Dec 12 2019 13:30:17)