Hybrid W-ZERO3のメールソフトを入れ替える
最初はOutlookでいいやと考えていたが、どうしても許容できない部分があったので結局乗り替えることにした。
と言うわけでメールソフトは幾つかあったが使ってみて一番自分が使いやすいなあと感じたHDMobiMailを導入へ。
ここのサイト記事を参考に導入して暫く運用してみたが大きな問題は無い様である。
導入にあたってキーロック画面をクラシックにしないといけないとか、メールの着信通知が来た後にメールソフトがサーバからのメール受信に失敗しているとその後はメール着信通知が来ないだとか、動作上の制約からくる不便はあるが個人的には許容範囲内である。
ただ気になるのがメール受信後にメールソフトが立ち上がったままとなる事である。
実害がある訳ではないがやっぱりメール受信後はメールソフトは終了しておいて欲しいので、ちょっとばかりスクリプトを修正させてもらうことにした。
MortScriptは初めてさわるが、まあ物は試し!なのである。
取り敢えずHDMobiLaunch.mscrファイル内のカスタマイズ可能な項目を修正である。
# バイブレーションする時間。単位はミリ秒。0 ならバイブレーションしない。
VibrationTime = 0000
# 終了時にメッセージを表示する
ShowMessage = NO
バイブレートは予想以上に強力なので使わない方向で、終了時のメッセージは個人的に余り意味を感じなかったので無しとした。
それと上記設定部分の下に下記項目を追加した。
#指定時間待機後にアクティブウィンドウ状態のアプリを終了する。単位はミリ秒。0 なら終了しない。
WaitEndTime = 00000
あと、メッセージを表示している処理の後に以下の処理を追加。
# メッセージを表示する
If(ShowMessage)
Message("メールが着信しました")
EndIf
-----------------------------------追加部分-----------------------
#処理追加部分 指定時間待機後にアクティブウィンドウ状態のアプリを終了する
If(WaitEndTime > 0)
Sleep(WaitEndTime)
TargetWindowTitle = ActiveWindow()
Close(TargetWindowTitle)
EndIf
-----------------------------------追加部分-----------------------
最初はサブルーチン内の
Run(MailerPath)
の部分を
RunWait(MailerPath)
に変更してみたのだが動作結果が変わらなかったので、上記の方法になった。
スクリプト修正後も自分の環境でテストした限りでは問題なく動作している様である。
因みに私は終了までの待ち時間を90秒に設定している。
ただし上の処理方法だとメールソフト起動から終了させるまでの間に他のアプリがアクティブになるとそいつを終了させてしまう。
私の環境ではその可能性はほぼないので気にしていないのだが、まあ不都合があればその時にまた対応する予定である。
2011/05/14追記:
色々あってMortScriptを4.2から4.3へ変更したら、メール受信後にメールソフトがちゃんと終了するようになっていた。
ひょっとしたらそれ以前からもちゃんと終了していたかもしれないが。
4.3でメールソフトを終了させる上の設定があると色々弊害が出てきたので現在は修正箇所を削除してます。
2011/05/15追記:
何回か動作チェックを試しているとメールソフトが自動で終わるときと終わらない時があることに気が付いた。
この際なので今までの機能変更は破棄してその辺を全面的にクリアにする事とした。
動作としては元の機能に追加で以下の動きをする様に修正。
1.メールソフト起動から定期的に回線接続状況をチェックして、指定時間後以降に回線が切れていたらメールソフトの存在を確認し起動しているなら終了させる。
2.一定時間経っても回線が切れていないなら、回線を切断しメールソフトが起動しているなら終了させる。
一通りテストしてみたが想定した動きをしているようなので、暫くこれで運用。
不具合時はまた対処を考える事とする。
以下、変更箇所を抜粋して記述
・変数追加
#メール受信後回線が切断されたらメールソフトを終了する。0 なら終了しない。
MobiAutoClose = 1
#一定時間経過度に回線を切断し、メールソフトを終了する。単位は秒。
CountTimeChk = 180
#起動から一定時間メールソフトを終了しない。単位は秒。
NoDisConTime = 60
#回線チェック用
RASConCheck = 1
・処理追加
#処理追加部分 回線切断後にメールソフトをクローズする
If(MobiAutoClose)
For i = 1 to CountTimeChk
#回線が切断されているか一定時間ごとにチェックする
RASConCheck = Connected()
If(i > NoDisConTime AND RASConCheck = 0)
i = CountTimeChk + 1
ElseIf(i >= CountTimeChk)
Call("RasDiscon")
EndIf
Sleep( 1000 )
Next
IF(ProcExists("HDMobiMail.exe"))
Sleep( 5000 )
Close("HDMobiMail")
EndIf
EndIf
・サブルーチン追加
#処理追加部分 回線切断する
Sub RasDiscon
Disconnect
EndSub
| 固定リンク


コメント
はじめまして。
バイブレーションする時間。単位はミリ秒。0 ならバイブレーションしない。
VibrationTime =0000
を
VibrationTime =250ぐらいにして
繰り返しをさせたいのですが script記述をどのように変更したらいいのか
ご教授おねがいします。
投稿: サンタ | 2011年4月 9日 (土) 08:05
どうも初めまして。
コメントありがとうございます。
単純にバイブレーションパターンを繰り返させたいのであれば、以下の方法で出来ると思います。
VibrationTime = 250
#バイブレーション停止時間。単位はミリ秒。
VibrationWait = 50
#バイブレーションパターン繰り返し回数。0にすると無限ループとなるので0に指定してはいけない。
VibrationRepeat = 4
まず上記の変数を追加して、実際にバイブレーションさせている部分を変更します。
変更前:
# バイブレーションをさせる場合
If(VibrationTime > 0)
Vibrate(VibrationTime)
EndIf
変更後:
# バイブレーションをさせる場合
If(VibrationTime > 0)
Repeat(VibrationRepeat)
Vibrate(VibrationTime)
Sleep(VibrationWait)
EndRepeat
EndIf
実機でテストしていないので上手く行かなかった場合はコメントしてください。
バイブレーションの停止時間や繰り返し回数は自分の好みで変更してください。
投稿: rikuzen | 2011年4月 9日 (土) 09:47
早速のお返事ありがとうございました。書き換えてためしてみたいと思います。
投稿: サンタ | 2011年4月 9日 (土) 17:35
実機でテストしてうまく希望していたようにいきました。
ありがとうございました。
投稿: サンタ | 2011年4月10日 (日) 06:56
うまく行った様で何よりです。
投稿: rikuzen | 2011年4月10日 (日) 23:07