修理完了!・・・なのか?
またもや連載の続きじゃありません(ぉ
本日午前中にウィルコムプラザからesの修理が終わったとの連絡がありました。9/19に修理に出して10/2返却なので2週間弱、決して早いとは思いませんが、まぁ我慢できる範囲でしょう。
ということで、さくっと取りに行ってきました。
プラザ内には平日夕方ってのにも関わらず10人近くのお客が順番待ちしてました。ウィルコムが盛況なのか、修理が多いだけなのかはあえて考えないことにします。
で、DORの番が来てたんで綺麗なお姉さんに受付票を渡して待つことしばし、2週間ぶりにesとの再開を果たしたのですが・・・そこで衝撃の事実が!
で、シャープでの修理内容ですが『タッチパネル認証に時間がかかるとのことですが、特に他機と比較しても同レベルで問題ありませんでした。』というわけで修理してないそうです。
ってなにーッ!?
「タッチパネル認証に時間がかかる」んじゃなくて「タッチパネル調整を何度もしないと終了できない」って言ったじゃんか!って受付票にもそうやって書いてあるじゃんか!!って修理してないのになんで2週間もかかるんじゃ!!?
と、心の中でものすごく不服そうな顔をしてたのがお姉さんに伝わったのか、すぐさま裏に行って何やら上司と相談している模様・・・戻ってきたとき、その手には未開封のesの箱が。
これからまた修理に出すと時間が掛かってしまい、またお越しいただくのも面倒かと思いますので、新品交換させていただきますね。
そして今、新品ピッカピカの、まだW-SIMも突っ込んでないesから、NANDをバックアップしてる最中です。これ、ひそかに需要がありそうな予感(^^;
マクロ2大巨頭がバージョンアップ!
短期集中連載の2回目にしていっぺん中断して別の話です(ぉぃ
マクロを組むうえで欠かせないツール、ExecMultiとCondExecがバージョンアップしたのですよ!
ExecMulti Ver.0.21
二重起動を可能にした。
掲示板でお願いしたところ、迅速に対応していただけましたッ!ありがとうございます!!
このバージョンアップにより、作れるマクロの種類が増えたり楽になるだけでなく、複数のマクロを同時に走らせることができるようになりました。特に後者のメリットはマクロを多数作ってるDORにとってはまさに死活問題でしたので助かります!!
CondExec Ver0.20
主な変更点は、以下の通りです。 ・exec, onTimeout, onUnmatchで実行する処理を複数記述可能にしました。 また、処理としてsleepも指定可能です。 (複数処理を実行するためだけにExecMultiを呼ぶ必要が無くなります) ・trigger項目値としてnot_active(未起動、または起動中だが最前面ではない) およびnot_inactive(未起動、または最前面で実行中)を追加しました。 ・起動中のCondExecを終了させる方法として、セクション名の 部分一致(先頭,途中,最後)で該当するものを終了させる オプションを追加しました。
以前コメントにて予告は聞いていたのですが、想像の斜め上をいく強化内容です! ExecMultiと同等の機能が搭載されたことも大きいのですが、個人的にはtrigger項目の追加とセクション名の部分一致がすごくありがたいです。というか実は今連載中のマクロはバージョンアップを期待して書いていたのですw
ももたろ様、392様、本当にありがとうございます!!
両者の新機能を使うと今まで作ったマクロもいろいろ改善できるんですが、blog形式だと情報を更新しても分かりづらいんだよなぁ・・・wikiに変えちゃおうかなぁ・・・・
おいしいマクロの作り方 (1)
ということで思いつきで短期集中連載を始めてみます、これであなたもマクロ作家!(大げさ)
目的を決める
最初に行うことであり、また一番重要な部分でもあります。
W-ZERO3使用中に「不便だと感じた点」、「こうだったら便利なのにと感じた点」があれば、それがマクロの候補になります。
また、他の携帯電話などにある便利な機能をW-ZERO3で再現するのもいいでしょう。
どんなアプリのどんな状況に対してでも構いません。そこを無理やりなんとかしてしまうのがマクロの醍醐味ですw
また、同様の機能があるアプリがないか探しておきましょう。わざわざマクロを作らないで済むならそれに越したことありません。
今回は、DORの携帯でできる「指定した時間経ったらマナーモードを解除する」機能を再現してみようと思います。W-ZERO3ツールメモで探した範囲ではこの機能を持ったアプリはない、はず(ぉ
必要な処理を考える
目的が決まったところで、それを実現するために何をすればいいか考えます。
まず、
- 起動するとマナーモードになる
- タイマーで指定した時間が経つとマナーモードを解除する
が簡単に思い浮かぶと思います。
そしてこの処理を使った場合を想定し、他に必要そうな処理がないか考えます。今回は、
- マナーモードを途中で解除した際にタイマーが残らないようにする
処理を追加します。タイマーが残ると、意図しないタイミングでマナーモードが解除されてしまう恐れがあるからです。
この段階で思い浮かばなくても、実際にマクロを使い始めるといろいろ改善点が見つかるので大丈夫です。
ということでこんな内容でしばらく続きます。1つのネタで何日も引っ張る魂胆だなんてぜんぜんありませんとも、えぇ!
受信したメールを即座に開く、そんなできる男を目指す(本編)
最近生活リズムが不定期で、ぜんぜんできない男になりつつありますが、それでも序章からの続きです。
目的
(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使ってる場合にどう動くか分かりません。誰か人柱になって報告してください(ぉぃ
帰ってきた男
ふぅ、ようやくインターネットの世界に戻ってこれました。
ちょっとW-ZERO3用アプリでも開発してみようなんて思ったんわけですよ。ということでVisualStudio2005の評価版を入れて、おっとWM5用SDKと日本語イメージも入れなきゃってとこで悲劇が起きました。
悪意のあるスクリプトチェックに引っかかるMS社アプリっておかしくないですか?(泣)
それが原因かわかりませんが、その後何度SDKのインストール/アンインストールを繰り返してもVS2005側で認識してくれず・・・結局OSから再インストールする羽目に・・・
ということで母艦の環境再構築中です。esも手元にないし、なんか踏んだり蹴ったりな感じですが、まぁ細々と頑張って生きます。
「電話に誰も出んわ!」なんて寒いことはもう言わせません
なんと今夜は豪華2本立て!(内容が豪華かは置いといて(^^;)
CondExecの活用例第3弾です。
(9/25 00:50修正)安定性を高めるため、CondExecのchekモードをchangeからbothに変更しました。最近マクロの完成度が落ちててすいません・・・
(9/24 15:15修正)CondExec.iniが1カ所間違ったので修正しました、これでたぶん動くはずです。やっぱ最後に動作チェックしないとダメですね・・・といいながら今回も動作チェックしてません(ぉぃ
目的
電話が掛かってきたときに呼び出し音量を最大にする
概要
電話が掛かってきた際、電話アプリが起動するので、それをCondExecのトリガーにして音量を最大にします。同様に終了したら音量を小さくします。
使用アプリ
手順
- 上記アプリを\Program Files\アプリ名\アプリ名.exeにインストールする
- 以下の内容を\Program Files\CondExec\CondExec.iniに追加して保存する
[Denwa_Active_VolMAX] class=AfxFrameOrView80su title=電話 check=both trigger=active exec=\Program Files\execmulti\execmulti.exe|Denwa_Active_VolMAX [Denwa_Inactive_VolDown] class=AfxFrameOrView80su title=電話 check=both trigger=inactive exec=\Program Files\execmulti\execmulti.exe|Denwa_Inactive_VolDown
(9/25 00:50追記)当初のcheck=changeだと、電話が終了し終わってないうちに電話起動を監視し始めた場合、そこでループが終了してしまってました。そこでcheck=bothに変更しました。安定性が増すはずです。
(9/24 15:15修正)大文字/小文字を1カ所間違えてました・・・ExecMultiはセクション名の大文字/小文字を区別するので注意という実例ってことでw
※電話アプリのクラス名、タイトルは初代W-ZERO3(WS003SH)で確認したものです、WS004SH/WS007SHでは異なる可能性があります。動かなかったらご指摘ください(^^;
- 以下の内容を\Program Files\execmulti\execmulti.iniに追加して保存する
[Denwa_Active_VolMAX] exec=\Program Files\chgvol\chgvol.exe|15 exec=\Program Files\CondExec\CondExec.exe|-execmode=open -section=Denwa_Inactive_VolDown [Denwa_Inactive_VolDown] exec=\Program Files\chgvol\chgvol.exe|5 exec=\Program Files\CondExec\CondExec.exe|-execmode=open -showicon=false -section=Denwa_Active_VolMAX
- 以下のショートカットを\Windows\スタートアップ\に作成する
- "\Program Files\CondExec\CondExec.exe" -showicon=false -execmode=open -section=Denwa_Active_VolMAX
- ショートカットの作り方は適当に探してください(ぉ
- "\Program Files\CondExec\CondExec.exe" -showicon=false -execmode=open -section=Denwa_Active_VolMAX
- 電話がかかってくると音量が最大になるので喜ぶw
注意点
- 電話アプリでの電話を掛ける際の操作音等も最大になるので注意してください。
- マナーモード、ドライブモードの場合、音量最大にしてもすぐ音量オフに戻されるため、この方法では音はなりません。強制的に鳴らしたい場合にはSetManner等を併用してください。
解説
CondExec作者の392様が途中まで公開されたのを、実際にchgvolと組み合わせてみました。かつ分かりやすさ優先で簡略化してます(^^;
再起動後にCondExecが常駐し、電話アプリのアクティブ化を監視します。アクティブ化したらchgvolで音量を最大(15)に変更し、今度は電話アプリの非アクティブ化を監視します。で、音量を調節(5)するわけです。なお5以外に調節したい場合、execmulti.iniの
- exec=\Program Files\chgvol\chgvol.exe|5
を適当に調節してください。
せっかくのCondExecの実行例を埋もれさせるのはもったいないので、勝手に流用してしまいました(^^;
それにしてもやっぱCondExec楽しいですわ〜、もりもりアイデアが出てきて追いつきませんw