進捗状況

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などの確認画面が出るものでも、簡単な記述で対応が可能になります。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中