カクカクの北海道Uターン週記

「元」日本語教師 /「元」旧司法試験受験生によるカクカクの北海道Uターン週記

「AlarmClock」の状態をToday画面に

 
 [es]が手許になかった9日間、最も困ったことのひとつが朝のアラームだった。前にもエントリーしたことがあるが(こちら)、その後も私の「AlarmClock」は熟成を重ね?、ほぼ完璧な挙動をさせることができるようになっている。そして昨夜、遂に「アラームのOn/OffをToday画面に表示する」ことに成功した!
 そこで今日は、[es]復帰記念に勉強を半休し、その手順・方法をご披露したい。なお、私の環境ではうまくいっているようであるが、もしも参考にされる場合は自己責任でお願いします。
 
 「AlarmClock」は大変便利なアプリなのだが、残念なことにそれがセットされているのかいないのかが表面上は見えない。もちろん、アプリを立ち上げればすぐに確認できるのだが、そこはそれ、できればToday画面上で確認したいところ。どうにかならんかな、と前々から思っていたわけである。
 
 まず、「AlarmClock」のセット状態がレジストリのどこかに書き込まれているはず、と当たりをつけ、「TRE」で探ってみる。と、HKCUの下、\Software\GreenSoftware\AlarmClock\Settingに、"Alarm"というキーを見つけた("1"だとセットされた、"0"だと解除された状態)。
 
 そこで、上のキーが"1"のときはアラームオン、"0"だとオフと、どこかに書き込んで、それをToday画面に表示させれば目標達成となるはずである。
 
 さて、どこに書き込めばToday画面に表示されるだろうか……と考えたところ、Today画面に任意の文字列を表示してくれるアプリ、「QuickMemoForPokeP」を使えばいいのでは?と思いついた。
 そこで、引き続き「QuickMemoForPokeP」のレジストリを探す。すると、今度はHKLMの下、\Software\Microsoft\Today\Items\quick_memo_for_pokePに、"ptext1"というキーがあることを発見(実際は、"ptext5"まであるが、今回は"ptext1"を使う)。
 
 あとは、「MortScript」の"RegWriteString"を使ってスクリプトを書く。
 

AC=RegRead("HKCU","\Software\GreenSoftware\AlarmClock\Setting","Alarm")

If(AC=1)
RegWriteString("HKLM","Software\Microsoft\Today\Items\quick_memo_for_pokeP","ptext1","*AlarmOn*")

Else
RegWriteString("HKLM","Software\Microsoft\Today\Items\quick_memo_for_pokeP","ptext1","……")

EndIf

 
 こう書いた後、「QuickMemoForPokeP」をToday画面に表示させてからスクリプトを実行すると、おぉ、やったではないか!
 
 
 しかし、ここではたと気付く。そのつど手動でスクリプトを実行させるのも能がない。できればレジストリを監視して、値が切り替わったタイミングで自動的に実行させられないだろうか……。
 
 ここで閃いた。非常駐KLChgExecを実現したときに利用させてもらった「cmdRegNotifyAPP」が使えるはずである。
 
 「cmdRegNotifyAPP」は、専門的で極めて敷居の高いアプリだが、その手助けをしてくれるスクリプトファイルを公開してくれている親切な方がいらっしゃり、私のような文系人間でも使うことができる(それでも「やっと」あるいは「どうにか」なのだが)。
 
 試行錯誤の末、「cmdRegNotifyAPP」に以下のような引数をつけて登録してやることで、うまくいった(と思っている)。ダブルクォーテーションを付け忘れて悩みに悩んだことは内緒である。
 

3;DispAlarm;HKCU;Software\GreenSoftware\AlarmClock\Setting;Alarm;\Program Files\MortScript\MortScript.exe;'"\Program Files\MortScript\Utility\DispAlarm.mscr"';-;-;-1;1;;;

 
 これで、「AlarmClock」でアラームセット/解除のたびに、Today画面上のメッセージが変わることになった(実際は、リアルタイムで、とはいかず、Today画面をRedrawする必要がある。もっとも、いったんスタートメニューを出して引っ込めるだけで表示は切り替わるので、不便は全くない)。
 恐らくは、アラーム設定時刻も表示できると思われる(レジストリにはそのキーもあった)が、現在の状況では必ずしも必要でないため、「アラームがセットしてあるか否か」だけを表示させることとした。興味のある方は試してみて下さい。
 
 以上につき、利用したアプリ等は以下(アプリ開発者の皆様には、本当に感謝しています。ありがとうございます)。
 1)「AlarmClock」
 2)「TRE」
 3)「QuickMemoForPokeP」
 4)「MortScript」
 5)「cmdRegNotifyAPP」
 6)「cmdRegNotifyAPPHelper.mscr」
 
 この他、「AlarmClock」関係では、“アラームが鳴っているときにあるキーを押すと、アラーム停止の後に日付/曜日/時刻が読み上げられ、続いて「GSPlayerK」が音量最大で起動。しかも3分後にはコケコッコーがけたたましく鳴り響く”などという合わせ技なども設定してあったりする私。「AlarmClock」にこれだけ凝る[es]使いはそうはいまい、と自負しているのであった。
 
 というわけで、久々に勉強をお休みして休息してみました。そのうち更新予定の別ページもご覧下さい。