おいしいマクロの作り方 (5)

前回までの流れ

 第1回 第2回 第3回 第4回

  • 「指定した時間経ったらマナーモードを解除する」マクロを作る
    • 実行するとするとマナーモードになる
    • タイマーで指定した時間が経つとマナーモードを解除する
    • マナーモード中に再度実行すると、マナーモードを解除する
    • タイマー時間はリスト表示型ランチャーから選ぶ
  • 一定時間で自動終了するDoNothingを別に起動し、その終了をCondExecで監視する
  • 処理開始(CondExecかExecIf)
    • タイマー起動中ならマナーモード終了処理
      • タイマー起動中=DoNothing起動中
    • タイマー未起動ならリスト表示(SimpleMenu)
  • リスト表示(SimpleMenu)
    • 30分(ExecMulti MannerTimer_30)
      • DoNothing 30分後に終了するよう起動
      • マナーモード有効化(SetManner)
      • CondExec(DoNothing監視)起動

マクロを作る

ここまで設計が固まったので、いよいよマクロを作っていきます。
各ツールの設定は、一から作ると分かりづらいと思いますので、既存の設定やマクロを修正していくと楽です。

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秒に変更してます。



これで動けばいいんですが・・・まぁ一発じゃ動かないでしょう(ぉぃ