受信したメールを即座に開く、そんなできる男を目指す(本編)
最近生活リズムが不定期で、ぜんぜんできない男になりつつありますが、それでも序章からの続きです。
目的
(Outlookメール利用時) pdxメールを自動受信すると同時に、任意のアプリを起動する
概要
メールを自動受信した際、「メール受信中」「メール受信終了」のポップアップが表示されるので、それをCondExecのトリガーにしてアプリ(今回はW-ZERO3 Mail Filter)を起動します。
使用アプリ
手順
- 上記アプリを\Program Files\アプリ名\アプリ名.exeにインストールする
- 以下の内容を\Program Files\CondExec\CondExec.iniに追加して保存する
[e-mail_Waiting] class=PhoneStatusWndClass2 title=Eメール(ウィルコム) check=change trigger=active exec=\Program Files\CondExec\CondExec.exe|-execmode=OPEN -showicon=FALSE -section=e-mail_Receive [e-mail_Receive] class=PhoneStatusWndClass2 title=Eメール(ウィルコム) check=change trigger=active timeout=180000 exec=\Program Files\execmulti\execmulti.exe|e-mail_Receive ontimeout=\Program Files\CondExec\CondExec.exe|-execmode=OPEN -showicon=TRUE -section=e-mail_Waiting
※(10/5追記)後述の説明と一致させるため、間違ってたontimeoutの-showiconの値をTRUEに変更しました
- 以下の内容を\Program Files\execmulti\execmulti.iniに追加して保存する
[e-mail_Receive] exec=\Program Files\wmf\wmf.exe exec=\Program Files\CondExec\CondExec.exe|-execmode=OPEN -showicon=FALSE -section=e-mail_Waiting
- 以下のショートカットを\Windows\スタートアップ\に作成する
- "\Program Files\CondExec\CondExec.exe" -execmode=OPEN -showicon=FALSE -section=e-mail_Waiting
- ショートカットの作り方は適当に探してください(ぉ
- "\Program Files\CondExec\CondExec.exe" -execmode=OPEN -showicon=FALSE -section=e-mail_Waiting
- メールを受信すると自動でメーラーが起動するので喜ぶw
注意点
- 以下の状況では正常に動作しない恐れがあります
- 標準メーラーをW-ZERO3メールにしている
- HDMobiMail等でtmail.exeを置き換えている
- メール受信中のポップアップを表示しないようにしている
- メールの受信に3分以上掛かる場合、処理がおかしくなります
- メール受信中はToday画面下部にCondExecのアイコンが表示されているので、3分を超えそうな場合、これをタップして終了したほうが無難です。
※タイムアウト時間を変えたい場合、CodeExec.iniの[e-mail_Received]セクションの、
- timeout=180000
を書き換えてください。
解説
前回の記事と同様に特定アプリを監視して処理を行っています。そのため、動作原理や作業手順はほとんど共通です。
W-ZERO3シリーズではメールを自動受信するために、\Windows\tmail.exe(=Outlookメール)を利用しています。tmail.exeはメール受信開始時に起動するため、これをトリガーにして「tmail.exe起動後60秒でアプリ実行」という処理が出来そうです。しかし、メールのサイズや受信状況によっては60秒で受信できないことがあり、この条件では不十分です。
そこで、「メール受信中」ポップアップを使います。多くの人が常日頃鬱陶しく思っているあれが、ついに役に立つわけですw メール受信時は2回ポップアップが表示されるので、これを以下のようなトリガーにします。ついでにメール受信に失敗した場合のタイムアウト処理も設定しておきます。
- 受信中=受信終了待ち
- 受信終了=アプリ実行+受信中待ち
- 3分(=180000秒)待っても受信終了しない、受信中待ち
本当は2回目のポップアップだけ監視できればいいんですが、2回ともクラス名、タイトルが同じなんで区別できないんですよね。でも他に監視できそうなアプリがなかったんで、2回起動するという強引な処理をしています。そのせいで1回目だけで終わった場合=受信失敗時に挙動がおかしくなるわけで・・・タイムアウトするようにして誤魔化してます(^^; 一定時間内に2回起動するのでExecDoubleを使ってもいいことに後から気づいたんですが、フロー書いてみたら大きなメリットはなかったんでそのままにしてます。ExecDouble使ったほうが処理はわかりやすくなるので、興味のある方は試してみるといいですよ。
あと、文中でも書きましたが、W-ZERO3メールやHDMobiMail使ってる場合にどう動くか分かりません。誰か人柱になって報告してください(ぉぃ