CABファイルの作り方

ハードリセット後に色々とアプリをインストールしたりレジストリ変更などの環境構築をやっているとなんとか自動化できないものかな〜と思う今日この頃。で、一つの解決策としてCABファイルとして設定を自動化してしまうという方法があるようなので覚書。
あと、MortScriptというものを使用する方法もあるみたい。

CABファイルの作成

以下プログラムの準備
Cabwiz.exe
Makecab.exe
Cabwiz.ddf

第1章 CABファイル作成の流れ


1 概要

 PocketPCのデバイスにアプリケーションをインストールする際、CABファイル(拡張子が.cab)が多く利用されています。
CABファイルをデバイスにコピーして起動するとインストールが実行されます。
 このとき、次のようなことが行われます。
  ・ファイルを指定されたフォルダにコピーする
  ・レジストリに指定されたキーを作成する
  ・ショートカットを作成する
  ・インストール情報を記録する
 このようなCABファイルを自分で作成することができれば、ハードリセット後に必要なファイルやレジストリを少ない手順で配置することができるなど、色々と便利です。
 そして、CABファイルを作成することは難しくありません。

 CABファイル作成の手順は次の通りです。
  ?インストールするファイルを準備する
  ?infファイル(ファイルをコピーするフォルダやレジストリの情報を記載したテキスト)を作成する
  ?CAB Wizardを使ってCABファイルを作成する


2 CAB Wizardの入手

 まず、CAB Wizardを入手します。

 Microsoftから配布されているeMbedded visual C++ 4.0、SDK for Windows Mobile 2003-based Pocket PCs の中に含まれています。
 これらはこちらからダウンロードします。
 
 次に、入手したeMbedded visual C++ 4.0をPCにインストールします。すると、
 "C:\Program Files\Windows CE Tools\wce420\POCKET PC 2003\Tools"のフォルダの中に "Cabwiz.exe","Makecab.exe","Cabwiz.ddf"ができますので、この3つのファイルを同じフォルダにコピーします。


3 CABファイルを作成してみる

 全体の流れを知るために、まず、やってみましょう。
 例として、JUsquidをデバイスにインストールするCABファイルを作成します。

 ?PCに作業用として、"C:\CreateCab"という名前のフォルダを作成します。
 ?\CreateCab の中にCAB Wizardのファイル "Cabwiz.exe","Makecab.exe","Cabwiz.ddf"をコピーします。
 ?\CreateCab の中に、"JUsquid"という名前のフォルダを作成します。
 ?"JUsquid"フォルダの中にインストールするファイル"JUsquid.exe"をコピーします
 ?エディタを使い、"JUsquid"フォルダの中に、"JUsquid.inf"という名前のテキストファイルを作成します。

 テキストの内容は以下の通りです。

[Version]
Signature = "$Windows NT$"
Provider = "%Vender_Name%"
CESignature = "$Windows CE$"

[Strings]
Vender_Name = JU ;ベンダ名
App_Name = JUsquid ;アプリケーション名

[CEStrings]
AppName = %App_Name%
InstallDir = %CE1%\%AppName%

[CEDevice]
VersionMin = 4.21 ;バージョン Min
VersionMax = 32767.0 ;バージョン Max
ProcessorType = 2577 ;CPU ARM/Xscale

[DefaultInstall]
CopyFiles = Files.All ;ファイルコピー
CEShortcuts = Shortcuts.All ;ショートカット作成
AddReg = RegSettings.All ;レジストリキー追加

[SourceDisksNames]
1 = , "All files", ,

[SourceDisksFiles]
JUsquid.exe = 1

[DestinationDirs]
DefaultDestDir = 0, %InstallDir%
Files.All = 0, %InstallDir%

[Files.All] ;ファイルコピー
JUsquid.exe, , , 0

[Shortcuts.All] ;ショートカット作成
%App_Name%, 0, JUsquid.exe, %CE11%

[RegSettings.All] ;レジストリキー追加(見本のために用意したもので、JUsquidには必要ない)
HKCU, Software\%Vender_Name%\%App_Name%, Testvalue, 0x00010001, 9

 ファイルの配置は下図のようになります。
C: CreateCab JUsquid JUsquid.exe
Cabwiz.exe JUsquid.inf
Makecab.exe
cabwiz.ddf



 ?コマンドプロンプトの窓を開きます。
 ?次のように入力します。
  C:\CreateCab>Cabwiz.exe "C:\CreateCab\JUsquid\JUsquid.inf" /err err.txt




 これで\CreateCabフォルダの中に"JUsquid.Cab"、"JUsquid.DAT"という2つのファイルが作成されていれば成功です。


 この作成されたCABファイルをHTC Universalにコピーして実行すると、JUsquidがインストールされます。
このとき、\Program フォルダに\JUsquid フォルダが作成され、JUsquid.exeがコピーされます。
また、\Windows\Start Menu\Programs フォルダにショートカットが作成されます。
さらに、レジストリには、HLEY_CURRENT_USER\Software\JU\JUsquid に Testvalue = 9 が作成されます。