進捗状況
WMのセキュリティの問題で、MMSLiteのインストールが完了しないことがあることを回避するために、色々やっているうちに、microSDから柔軟に自動セットアップできる見通しが立ってきました。一度、ガリガリにROMインストールしまくりになった、Kaiser研究用ROMですが、またスリムアップの方向に軌道修正中です。execmulti/MortScript/TREの併用で、見た目のみすぼらしさはともかく、非常に強力なセットアップのカスタマイズが可能になってきました。
MortScriptを使ったCABのインストールは、さまざまな方法が提供されていますが、どうにかカタチになったのでメモしておきます。
# Cabインストールサブルーチン # CabFile = ファイル名 Sub InstallCab IdleTimerReset Run("\Windows\wceload.exe", "/nodelete /silent ""\Storage Card\Setup\" \ InstallCabFile & """") Run("\Storage Card\Setup\SendOK.mscr") SleepMessage(100, "Installing " & InstallCabFile & "...", "Setup", 0, ProcExists("wceload.exe")=0) While (ScriptProcExists("SendOK.mscr")) KillScript("SendOK.mscr") Sleep(500) EndWhile IdleTimerReset EndSub
SendOK.mscrは以下の通りになっています。
While (ProcExists("wceload.exe")) WndTitle = "Spb Insight" Call CheckWnd WndTitle = "Spb Diary" Call CheckWnd Sleep(500) EndWhile Sub CheckWnd If (wndExists(WndTitle)) SendOK(WndTitle) EndIf EndSub
サイレントモードでCABをインストールしているので、原則としてはwceload.exeのプロセスが終了するまで待てば良いのですが、Spb Insightや Spb Diaryのようにサイレントモードでも最後に確認画面が出てくるものがあります。それに対応するのが、SendOK.mscrです。数は少ないので記述することは少ないと思います。CheckWndはサブルーチンかするまでもない程度のものですが、こうすることによってコーディングミスを減らすことができます。インストール先が本体に限定されますが、インストール中にダイアログを表示でき、Spb Diaryなどの確認画面が出るものでも、簡単な記述で対応が可能になります。