« [Zaurus] マップ対策? | Main | [Windows Mobile] MortScriptで遊ぶ »

2007.02.27

[Windows Mobile] QMAIL3でサスペンドから起きて自動定期巡回(メール送受信)

かねてより、Windows Mobile / Pocket PC等でサスペンドから自動的に起きて(レジュームして)、メールソフト(僕の場合主にQMAIL3)にて自動定期巡回(間欠巡回)をしたいと思っていました。

Windows Mobile内に常に最新メールが入っていると、利用価値が飛躍的に高まるからです。
メールを見たいと思ってから受け取るのでは遅いのです。

QMAIL3(や、そのほかのメールソフト)の自動巡回機能はサスペンド中は機能しません。

Windows Mobile / Pocket PC / Win32等で動くインタプリタ「MortScript」で、サスペンドから起きつつ巡回、ということが実現できたので、スクリプトを置いておきます。

以前エントリしたZaurusでCronInetとMewによるメールの定期巡回のWindows Mobile版ですね。

「AutoMail.mscr」をダウンロード

「AutoMailUnReg.mscr」をダウンロード

免責

責任は取りません。

スクリプトの性質上、WM5以前の機種では最悪RAMが飛ぶとかいうことは起き得ます。

能書き

今はW-ZERO3があり、メールを受動的に受け取れますが、僕はh2210をずっと使っているので恩恵にあずかれていません。

これを使うと、設定した間隔を置いて、

サスペンドから起きる

QMAIL3が実行中かどうか判定

バッテリの残量が指定%以上になっているか
もしくは外部電源供給されているか判定

巡回開始

ということが繰り返せます。例えば、30分ごとに巡回するよう指定した場合、30分ごとにWindows Mobileデバイスがサスペンドから起きて、QMAIL3でメールの送受信が自動的にできます。

手元にはCASSIOPEIA E-2000とiPAQ h2210しか無いのですが、それらでは動作しています。
意味があるか分かりませんが、W-ZERO3などでも動くと思います。

インストール

※すべてのファイルはパスに日本語が使われていない場所にインストールした方がいいと思います。

MortScriptのインストール

上記のスクリプトはMortScript用なので、MortScriptをインストールします。
RAMないし、サスペンドからの起き抜け実行でも不安定でない場所にインストールしてください。

mort.sto-helit.deへ行って現時点の最新版MortScript 4.0 RC9、もしくは「Temporary」からダウンロードできるMortScript RC10 (Test)をダウンロードしてきて、PPC用をインストールします。

QMAIL3のインストール

QMAIL3が動くように設定します。外部ストレージの寝起きが悪い機種では、これも実行ファイルはRAMないし内蔵メモリにインストールしましょう。Mailディレクトリは外部ストレージでも問題無いと思います。

QMAIL3の「巡回」の設定

QMAIL3の「ツール>同期>巡回>巡回」を設定します。設定項目のダイヤルアップでは「ネットワークに接続していないときにダイヤルアップ接続する」を設定しておきます。このスクリプトではダイヤルアップの接続/切断を面倒見ません。「自動巡回」ではなく「巡回」の方なので注意してください。
巡回名は、念のため1バイト英字のみで付けておいてください。

本スクリプトのインストール

上のリンクから「AutoMail.mscr」、「AutoMailUnReg.mscr」をダウンロードしてきます。
中身はShift-JIS、CR+LFのテキストです。

これを、とりあえず「\Program Files\MortScript\」にコピーします。
二つのスクリプトを起動しやすいようにLauncher、スタートメニュー等に登録します。

スクリプトの設定

「AutoMail.mscr」をテキストエディタで開くと、以下のような部分を見つけることができるはずです。巡回名の方は、さきほど設定した巡回の名前です。ダブルコーテーションで囲む必要があるので注意してください。

# Configure ########

# QMAIL3で実行する巡回名
s_course = "YOUR_COURSE_NAME"

# QMAIL3のパス(フルパス指定)
s_qmail3 = \
"\Program Files\QMAIL3\Q3U.EXE"

これを自分の環境に合わせて書き換えます。

QMAIL3が無いとか言われる場合は記述を確認、もしくはパスに日本語が使われていないか確認してください。

実行

QMAIL3を実行します。(QMAIL3が実行中でないと自動巡回しないようにしています)

「AutoMail.mscr」を実行します。

特に問題無ければ、バッテリ駆動時30分間隔、外部電源時15分間隔の定期巡回が始まるはずです。
巡回開始直後にバッテリ駆動時2回、外部電源時3回LED、バイブレータが動作すると思います。
これが嫌だということで0にすると永久ループになりますので、注意してください。

自動巡回の中止

「AutoMailUnReg.mscr」を実行します。
特に問題無ければLED、バイブレータが5回動作すると思います。

注意

「AutoMail.mscr」は、自分自身を未来の日付で呼び出すことで間欠実行を実現しているので、自動実行継続中はファイル名の変更、ファイルの移動をしてはいけません。

「AutoMail.mscr」で自動実行を開始したら、「AutoMailUnReg.mscr」で停止させるまでいじらないようにしてください。

また、「AutoMailUnReg.mscr」が参照するためにファイル「\My Documents\AutoMailScriptName.txt」というファイルを作ります。これも「AutoMailUnReg.mscr」で自動実行を停止させるまで削除してはいけません。

基本的にはARM CPUを搭載したWIndows Mobile / Pocket PCで動くと思いますが、中には省電力機能の出来によって動かない、動くが不安定、という機種もあると思います。

おかしくなった場合

えーと、たまったイベントを消すユーティリティがあったと思うのですが……。

Task Manager v2.7でできました。Notificationsタブから削除などできます。
MortScripterおすすめのユーティリティです。

付記

カスタマイズ

「AutoMail.mscr」の冒頭に以下の項目があるので適当に書き換えてください。

# Configure ########

# QMAIL3で実行する巡回名
s_course = "YOUR_COURSE_NAME"

# QMAIL3のパス(フルパス指定)
s_qmail3 = \
"\Program Files\QMAIL3\Q3U.EXE"

# バッテリー駆動時のインターバル(分)
n_s_interval = 30

# 外部電源時のインターバル(分)
n_l_interval = 15

# 自動巡回実行
# バッテリーレベルしきい値(%)
n_batt_lv = 50

# サスペンドから起きてQMAIL3で
# 巡回するまでのウェイト(秒)
n_wait = 3

# wavファイルのパス
s_wav_file = \
"\Windows\KeyDown.wav"

省電力機能の設定

動作が不安定な場合は、「設定」の「バックライト」の「デバイスを使用していない時にはバックライトを切る」を30秒以上にしてください。

インプレッション

まだ全然実用してないので(してから書けよ)実用度は分かりませんが、夢の「サスペンドから起きての自動実行」なので、かなり感激してます。

別にQMAIL3に限った話でなく、いろんなことができると思います。例えばUK-TaniyamaさんのUKTenkiとか。
ダイヤルアップの接続・切断と、その同期方法を考えないといけないですが。

一応、MortScriptにはConnect()、Disconnect()、Connected()などの関数があります。(PDF)
同期方法が考えどころです。

|

« [Zaurus] マップ対策? | Main | [Windows Mobile] MortScriptで遊ぶ »