末尾に記すスクリプトを実行すると、以下のようなバルーンをタスクトレイの領域に表示する。2ちゃんねるにどれほど入り浸っているかを確認してみると、面白いだろう。
スクリプトの導入方法は以下のとおりだ。
- AutoHotkey_Lの "Get It" から "Installer" を取得する
- インストールする設定で、"Choose Version" で "Unicode (rocommended for new installations/scripts)"を選択する(つまり、Unicode 版をインストールする)
- 末尾に記すスクリプトを UTF-8 (BOM 付き)で保存する
- そのスクリプトを実行する
初期設定では,JaneXeno でなにかしらの板を見ているときには、バルーンに情報を表示し続けるようにしている。明示的に操作しないかぎり、情報を表示しないよう設定することもできる。always_show_info := 1 を always_show_info := 0 と書き換えると、タスクトレイの「情報を表示」を選択したときにのみ、情報を表示する。
#singleinstance #persistent ;;; 監視するタイトル app_name := "JaneXeno" ;;; 2ちゃんねるの閲覧情報を常に表示するか always_show_info := 1 board_sec := Object() total_sec := 0 menu, tray, Tip, 2ちゃんねるの閲覧時間を計測中 menu, tray, NoStandard menu, tray, add, 情報を表示, ShowInfo menu, tray, add menu, tray, add, 終了, ExitApp loop { Loop,Parse, app_name, | { IfWinActive, %A_LoopField% { WinGetTitle, Title, A RegExMatch(Title, " 【(.+)】", $) title_of_a_board := $1 board_sec[title_of_a_board] := ( board_sec[title_of_a_board] ) ? board_sec[title_of_a_board] + 1 : 1 each_sec := board_sec[title_of_a_board] total_sec += 1 if ( always_show_info ) ShowInfo(total_sec) } } Sleep,% 1000 } return ShowInfo: ShowInfo(total_sec, 1) return ExitApp: ExitApp return ShowInfo(total_sec, place=0) { global board_sec enum := board_sec._NewEnum() While enum[k, v] t .= k "`t" sec_to_hms( v ) "`n" total_time := sec_to_hms( total_sec ) if ( place = 0 ) TrayTip, 2ちゃんねるの閲覧時間(%A_LoopField% 版), %t%`n合計`t%total_time%, , 1 else MsgBox, ,2ちゃんねるの閲覧時間(%A_LoopField% 版), %t%`n合計`t%total_time% return } ;;; 秒を日時に変換する sec_to_hms( sec ) { min := sec // 60 if ( min ) { sec := Mod(sec, 60) hour := min // 60 if ( hour ) { min := Mod(min, 60) day := hour // 24 if ( day ) hour := Mod(hour, 24) } } t := "" if ( day ) t .= day . " 日 " if ( hour ) t .= t . hour . " 時 " if ( min ) t .= min . " 分 " t .= sec . " 秒" return t }