🐍

Python の win32gui を使ってアクティブウインドウの記録を取るスクリプト

2020/02/16に公開

ソフトウェアの開発をしている会社だと、どの作業を何分やったかを日報に入れろと言われることが多いのではないでしょうか?
そんな事言われても忙しいときは記録取るのが難しいので、「アクティブウインドウの記録を取ればだいたい何をしていたのかわかるのでは?」という前提でそれをするためのスクリプトを作ってみました。使えると嬉しい人が他にもいそうなので、公開しておきます。
タイトルバーに編集中のファイル名が出る種類のエディタをお使いのプログラマでしたらこのスクリプトでだいたい何をしていたか後で振り返ることができます。

出来上がったスクリプト

以下にあります:
https://github.com/aikige/homeBinWin/blob/master/dumpForegroundWindow.pyw

基本的なコンセプト

  1. pywin32 に含まれている win32gui.GetForegroundWindow および、win32gui.GetWindowText を使って現在フォアグラウンドで動作しているウインドウのタイトルを取得します。
  2. 取得したものをタイムスタンプ付きでダンプします。
  3. 上記の処理を定期実行(間隔は引数で変更可能)します。
  4. ログは日付ごとのファイルに記録されます。とりあえず現在はファイルと標準出力の両方にログが出力されるようにしてあります。

スクリプトを動かすための前準備

pywin32がまだ入っていない場合はインストールしてください。

pip install pywin32

動作確認した環境

Python 3.8.1
pywin32 Version 227

※win32guiは、pywin32に含まれているようです。

参考にしたもの

https://www.programcreek.com/python/example/81370/win32gui.GetForegroundWindow

関連する記事

https://zenn.dev/aikige/articles/create-tasks-invoked-on-lock

余談

Windows 10 の場合、タイトルバーは UTF-8 の範囲の文字が利用されているようです。

Discussion