AutoHotKey を使用して Windows 上で時間追跡アプリケーションを作成する方法

AutoHotKey を使用して Windows 上で時間追跡アプリケーションを作成する方法

毎日早く仕事を始めて、その日のうちにすべてを解決できるようにします。次に時計を確認すると午前 3 時ですが、仕事はまだ終わっていません。それでは、時間はどこへ行ってしまったのでしょうか?

専用の時間追跡アプリを使用することもできますが、これらは複雑でイライラする可能性があります。代わりに、独自のシンプルな小さなアプリを作成してみてはいかがでしょうか?このアプリケーションは、一日中に使用したすべてのウィンドウを追跡できます。 AutoHotKey とメモ帳のような基本的なワード プロセッサが必要で、所要時間は約 30 分です。始めましょう!

AutoHotKey を使用して独自の Windows ロギング スクリプトを作成する

AHK はスクリプトの「パーサー」として機能するため、開始する前にコンピューターに AHK をインストールする必要があります。これは、スクリプトを「実行」できるようにするツールです。

: 完了後にスクリプトをコンパイルして、実際の実行可能プログラムに変えることもできます。ただし、それはこの記事の範囲を超えています。

公式サイトからAutoHotKeyをダウンロードしてインストールします。

AutoHotKey を使用して Windows 上で時間追跡アプリケーションを作成する方法

[新規] > [AutoHotKey スクリプト] を選択します。

お気に入りのファイル マネージャーを起動し、スクリプトを保存するフォルダーにアクセスします。次に、空の場所を右クリックし、 [新規] > [AutoHotKey スクリプト]を選択します。

完了したら、実際のスクリプトを作成します。

1. 必要な変数を特定する

お気に入りのエディタでスクリプトを開きます。 Windows に付属の Notepad などの単純なものを使用できますが、この記事ではこのチュートリアルではNotepad++を使用します 。 Notepad++ は無料であり、この目的に適しているため、試してみるとよいでしょう。

スクリプトの書式設定に影響を与える可能性がある Word や Google ドキュメントなどのアプリケーションは使用しないでください。テキスト エディタまたはコード エディタを使用します。

スクリプトには、互換性とパフォーマンスに関する基本的な推奨情報が含まれています。そのままにして、以下のスクリプトを開始します。

次で始まります:

AppLoggingRate = 10 ; Time interval (in seconds) between active window title captures.
SleepTime := AppLoggingRate * 1000
LogPath = %A_ScriptDir%
LastActiveWindow =

まず、値「10」をAppLoggingRateに割り当てます。これは、ウィンドウ ログの試行間の時間を計算するために使用されます。

AHK のスリープ機能と併用した場合、1000 はほぼ 1 秒に相当します。したがって、これにAppLogingRateを乗算すると、SleepTime 変数が「10 秒に等しい」ことになります。

LogPath は、ログを保存するために使用されるパスです。この例では、値%A_ScriptDir%を使用しています。これは、「スクリプトを実行するディレクトリ」に変換されます。必要に応じて、別のフォルダーへのフルパスを使用できます。

最後に、LastActiveWindowを空に設定し、後でアクティブ ウィンドウが変更されたかどうかを確認するために使用します。

2. アクティブなウィンドウを監視する

どのウィンドウがアクティブであるかを継続的に監視し、ウィンドウが変化した場合はタイトルと時間を記録したいため、「ループ」を使用する必要があります。

名前が示すように、ループは継続的に実行され、同じ機能を繰り返します。 AHK の単純な構文のおかげで、次の「コード」は比較的理解しやすいです。

Loop
{
    Sleep %SleepTime%
    Msgbox, It Works!
}

「loop」という単語を入力し、その先頭を「{」、最後を「}」でマークするだけでループを定義できます。「{」「}」の間の行はすべて、スクリプトを終了するまで永久に実行されます。

SleepTime 変数と同じ時間待機 ( Sleep )してループを開始しますこの変数により時間制御が簡単になります。自分でスクリプトを編集する代わりに、この変数を使用して、各ループが何秒続くかを「指示」することができます。

最後に、メッセージ ボックスを使用してスクリプトをテストします。保存して実行してみます (スクリプト ファイルをダブルクリックします)。「It Works!」というメッセージ ボックスが表示されます。(スクリプトは動作しています) 10 秒後。

Windows トレイで AHK のアイコンを右クリックし、十分なメッセージ ボックスが表示されたらスクリプトを終了します。次に、エディターに戻り、MsgBoxの行を次のように置き換えます。

WinGetActiveTitle, ActiveWindow

アクティブなウィンドウのタイトルを取得するコマンドです。例でテスト用のスクリプト作成中に使用した余分な「StoreActiveWindow」行を省略します。

AutoHotKey を使用して Windows 上で時間追跡アプリケーションを作成する方法

アクティブなウィンドウのタイトルを取得し、変数に格納します。

3. 現在の時刻と名前を取得する

ここからがスクリプト ロジックの核心です。アクティブなウィンドウの名前と前のウィンドウの名前を比較し、異なる場合は「何かを実行」します。すべては次のように単純です。

If ActiveWindow != %LastActiveWindow%
{
}

上記を考慮して、現在のActiveWindow がLastActiveWindow変数 (最初は空に設定されている)に格納されている値と異なる ( != ) かどうかを確認します。その場合、AHK は、現在空である{}の間のコードを実行します。

アクティブなウィンドウと前のウィンドウのタイトルを比較する機能を設定します

ウィンドウの稼働時間を測定するには、日付と時刻の両方を追跡する必要があります。名前に日付を使用した毎日の異なるログが保持されます。すべての変化だけでなく、変化が発生した時間も記録されます。これを行うには、次のように、 LogTime変数とLogFilename変数に異なる時刻形式を割り当てます。

FormatTime, LogTime,, HH:mm:ss
FormatTime, LogFilename,, yyyy-MMM-dd

これらの行を"If ActiveWindow..."の中括弧の間に追加して、AHK がウィンドウの変更を検出したときにこれらの行を実行できるようにします。

AutoHotKey を使用して Windows 上で時間追跡アプリケーションを作成する方法

現在時刻を取得し、異なる形式の 2 つの変数に代入します。

4. データ形式

ここで、時間とアクティブ ウィンドウのタイトルを 2 つの異なる形式の変数でキャプチャします。ただし、小さな問題があります。ウィンドウのタイトルには不要な文字が含まれる場合もあります。 AHK の RegEx サポートを使用すると、次のようにして、英数字以外の文字をすべて削除できます。

LogWindow := Regexreplace(ActiveWindow, "[^a-zA-Z0-9]", " ")

これを念頭に置いて、かっこ内の内容と一致しないすべての文字を ActiveWindow 変数から削除するように AHK に「依頼」しましょう。

  • 小文字
  • 大文字
  • 数字

次に、結果をLogWindow 変数に代入します。

AutoHotKey を使用して Windows 上で時間追跡アプリケーションを作成する方法

RegEx を使用してアクティブなウィンドウのタイトルをクリーンアップする

すべての変数を設定し、すべての貴重なデータを収集したら、ログ ファイルとその内容をフォーマットする準備が整いました。

LogFilename = %LogFilename%_AppLog.md
LogFile = %LogPath%\%LogFilename%

以前は、現在の日付をLogFilename 変数に割り当てていました。そのため、1行目は日付に「_AppLog.md」を付けてファイル名とします。

AutoHotKey を使用して Windows 上で時間追跡アプリケーションを作成する方法

ログファイル名を設定します

2 行目では、ファイル名とともにログ ファイルの宛先として最初に定義された変数LogPathを結合します。それらの組み合わせがログ ファイルの絶対パス名となり、変数LogFile に割り当てられます。

「空行、時間 - ウィンドウの名前、さらに 2 つの空行、区切り線、および念のためもう 1 つの空行」と同等の値をFileContent 変数に割り当てましょう

FileContent = `n%LogTime% - %LogWindow%`n`n- - -`n
  • 文字「n」は、AHK に新しい行を入力するように指示します ( Enter キーを1 回押すのと同じです)。
  • クロスダウン互換のビューアで表示すると、3 つのダッシュが区切り文字として表示されます。
  • 「% LogTime%」と「% LogWindow%」は、アクティブなウィンドウの名前とそれが検出された時間を格納する変数です。

AutoHotKey を使用して Windows 上で時間追跡アプリケーションを作成する方法

ログファイルの内容を決定します

5. ファイルを更新する

ファイルに書き込む内容、およびそのパスとファイル名を定義しました。残るのは、次のような実際の単純なテキストだけです。

FileAppend, %FileContent%, %LogFile%

「FileContent」変数内のすべてを「LogFile」ファイルに追加します

AutoHotKey を使用して Windows 上で時間追跡アプリケーションを作成する方法

AHK の追加機能を使用してログ ファイルを更新するか、最初からログ ファイルを作成します

「append」関数は、ファイルが存在する場合は「FileContent」をファイルに追加しますが、ファイルが存在しない場合は最初から作成します。

最後の調整が 1 つあります。LastActiveWindow変数の内容を現在アクティブなウィンドウに置き換えます。

AutoHotKey を使用して Windows 上で時間追跡アプリケーションを作成する方法

今後のテストのために、現在アクティブなウィンドウのタイトルを LastActiveWindow 変数に挿入します

これを行うには、スクリプトが次のウィンドウの変更を検出できる必要があります。

LastActiveWindow = %ActiveWindow%

最後の追加により、Windows ロガーの準備が整いました。スクリプトを保存して実行します。次に、マークダウン ファイルを確認します。このファイルは 10 秒後にスクリプト ファイル フォルダーに表示されます。

AutoHotKey を使用して Windows 上で時間追跡アプリケーションを作成する方法

Windows ログ ファイルはスクリプトと同じディレクトリに作成されます

自分の時間をコントロールしましょう

ログ ファイルは任意のテキスト エディタで開くことができます。ただし、Markdown 互換のエディターで開いた方が見栄えは良くなります。スクリーンショットでは、人気のある Typora エディターのログを確認できます。

AutoHotKey を使用して Windows 上で時間追跡アプリケーションを作成する方法

スクリプトによって生成されたマークダウン ファイルは Typora にロードされます

これは、どのアプリを最も多く使用しているかを確認する簡単な方法であり、メモ帳などのツールを使用するだけで済みます。

「より特別な」ものが必要な場合は、いつでもロガーの出力を「スタイル」して、代わりに CSV ファイルを作成できます。FileContent変数と作成されたファイルの拡張子を調整するのと同じくらい簡単です。その後、そのようなファイルを Excel、Google Calc、さらにはサードパーティのタイム トラッカーなどのアプリケーションにインポートできます。

完全なスクリプト

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
; Variables
; ---------
AppLoggingRate = 10 ; Time interval (in seconds) between active window title captures.
SleepTime := AppLoggingRate * 1000
LogPath = %A_ScriptDir%
LastActiveWindow = 
; Logic
; -----
Loop
{
	Sleep %SleepTime%
	
	WinGetActiveTitle, ActiveWindow
	StoreActiveWindow = %ActiveWindow%
	
	If ActiveWindow != %LastActiveWindow%
	{
		FormatTime, LogTime,, HH:mm:ss
		FormatTime, LogFilename, , yyyy-MM-dd
		
		LogWindow := Regexreplace(ActiveWindow, "[^a-zA-Z0-9]", " ")
		
		LogFilename = %LogFilename%_AppLog.md
		LogFile = %LogPath%\%LogFilename%
		
		FileContent = `n%LogTime% - %LogWindow%`n`n- - -`n
		
		sleep 50
		
		FileAppend, %FileContent%, %LogFile%
		LastActiveWindow = %ActiveWindow%
	}
}
Exit

Windowsでhostsファイルを開く方法

Windowsでhostsファイルを開く方法

Windows コンピュータ上のホスト ファイルには、サーバーとポイントされるドメイン名に関する情報が保存されます。ホスト ファイルを編集して、Web サイトへのアクセスや Facebook へのアクセスをブロックできます...では、コンピューター上でホスト ファイルを開くにはどうすればよいでしょうか?

Windows 10 に Windows Subsystem for Linux 2 をインストールする方法

Windows 10 に Windows Subsystem for Linux 2 をインストールする方法

Windows 10 2004 では、Microsoft は Windows Subsystem for Linux バージョン 2 (WSL 2) を導入しています。これは、Windows 10 上で Linux をネイティブに実行できるようにするアーキテクチャの新しいバージョンであり、最終的には WSL 1 を置き換えます。

TeamViewerとは何ですか?

TeamViewerとは何ですか?

TeamViewer は、多くの人、特にコンピューターを日常的に使用し、テクノロジー分野で働いている人にとってよく知られた名前です。では、TeamViewerとは何でしょうか?

Windows 10でキーボードショートカットを使用してスピーカーを切り替える方法

Windows 10でキーボードショートカットを使用してスピーカーを切り替える方法

通常、オーディオ デバイスの使用に切り替えるには、システム トレイのスピーカー アイコンをクリックする必要があります。ただし、キーボード ショートカットを使用してこの操作を実行できます。

Windows 10 で通知センターをオフにする方法は?

Windows 10 で通知センターをオフにする方法は?

Windows 10 の通知センターは非常に便利です。ただし、多くのユーザーはこの機能を気にしないことがよくあります。特に、画面の右隅に頻繁に表示される通知は、ユーザーに不快感を与えるだけでなく、コンピューターの速度を低下させる原因にもなります。したがって、通知センターをオフにして、コンピューターの動作を高速化できます。

Windows 10 LTSC について学ぶ

Windows 10 LTSC について学ぶ

一部の企業は、Microsoft の長期サービス チャネルの導入を検討しています。他のすべての Windows 10 オペレーティング システム オプションと同様、Windows 10 LTSC にも独自の長所と短所があります。

Windows 10でXPS Viewerアプリケーションを追加/削除する方法

Windows 10でXPS Viewerアプリケーションを追加/削除する方法

XPS ビューア アプリケーションを使用すると、XPS ドキュメントの読み取り、コピー、印刷、署名、アクセス許可の設定を行うことができます。このガイドでは、Windows 10 のすべてのユーザーに対して XPS ビューアー アプリを追加 (インストール) または削除 (アンインストール) する方法を説明します。

Windows 10で画像ファイルをPDFに変換する方法

Windows 10で画像ファイルをPDFに変換する方法

Windows 10 で画像ファイル形式を PDF ファイルに変換するには、ソフトウェアをインストールすることなく、システムで利用可能な変換モードをすぐに使用できます。

IE モードを使用して、最近廃止された Internet Explorer を置き換える方法

IE モードを使用して、最近廃止された Internet Explorer を置き換える方法

Windows 11 から Internet Explorer は削除されます。この記事では、LuckyTemplates が Windows 11 で Internet Explorer を使用する方法を説明します。

Windows 10 プロダクト キーを Microsoft アカウントにリンクする手順

Windows 10 プロダクト キーを Microsoft アカウントにリンクする手順

この新機能を使用すると、マザーボードやプロセッサー (プロセッサー) またはハード ドライブの交換など、コンピューターのハードウェアを変更するときに Microsoft に連絡することなく Windows 10 を再アクティブ化できます。