おいしいマクロの作り方 (5)
前回までの流れ
- 「指定した時間経ったらマナーモードを解除する」マクロを作る
- 実行するとするとマナーモードになる
- タイマーで指定した時間が経つとマナーモードを解除する
- マナーモード中に再度実行すると、マナーモードを解除する
- タイマー時間はリスト表示型ランチャーから選ぶ
- 一定時間で自動終了するDoNothingを別に起動し、その終了をCondExecで監視する
- 処理開始(CondExecかExecIf)
- タイマー起動中ならマナーモード終了処理
- タイマー起動中=DoNothing起動中
- タイマー未起動ならリスト表示(SimpleMenu)
- タイマー起動中ならマナーモード終了処理
- リスト表示(SimpleMenu)
- 30分(ExecMulti MannerTimer_30)
- DoNothing 30分後に終了するよう起動
- マナーモード有効化(SetManner)
- CondExec(DoNothing監視)起動
- 30分(ExecMulti MannerTimer_30)
マクロを作る
ここまで設計が固まったので、いよいよマクロを作っていきます。
各ツールの設定は、一から作ると分かりづらいと思いますので、既存の設定やマクロを修正していくと楽です。
CondExec CondExec.ini(手動で実行する部分)
[MannerToggle] class=DoNothing title=MannerTimer exec=close onunmatch=\Program Files\SimpleMenu\SimpleMenu.exe|MannerTimer.ini
CondExec、ExecIfのどちらでも対応できるのですが、今回は利用アプリ数を少なくするためCondExecを使っています。
SimpleMenu MannerTimer.ini
[30分] \Program Files\execmulti\execmulti.exe|MannerTimer_30
他の時間はこの時点では省略します。テストしたら動かなくて作り直し、の手間を最小限にするためです(^^;
ExecMulti execmulti.ini
[MannerTimer_30] \Program Files\DoNothing\DoNothing.exe|-execmode=open -alivetime=18000 -showicon=true -title=MannerTimer \Program Files\execmulti\execmulti.exe|MannerTimer [MannerTimer] \Program Files\SetManner\SetManner.exe|/on \Program Files\IfMsg\IfMsg.exe|マナーモードを設定しました \Program Files\CondExec\CondExec.exe|-execmode=open -showicon=true -section=MannerTimer
MannerTimer_XXとMannerTimerを分離して、後で時間を追加する場合のメンテを楽にしてみました。
CondExec CondExec.ini
[MannerTimer] class=DoNothing title=MannerTimer mode=both trigger=closed exec=\Program Files\SetManner\SetManner.exe|/off exec=\Program Files\IfMsg\IfMsg.exe|マナーモードを解除しました polling=10000
マナーモード終了まで長時間常駐し続けるため、チェック間隔(polling)を標準の50ミリ秒から10000ミリ秒=10秒に変更してます。
これで動けばいいんですが・・・まぁ一発じゃ動かないでしょう(ぉぃ