Windows アプリケーションの展開方法を学ぼう(後編)
大分ご無沙汰になってしまいました。 iPX のコクブンです。
さて、前編の記事では、 WiX Toolset を使用した基本的なインストーラの作成方法についてご紹介しました。
後編ではインストーラの UI を表示する方法、またその UI のカスタマイズ方法について紹介したいと思います。
設定用の UI を表示する
前編の最後に書いた様に、インストーラを作成していると、どうしても「インストールするモジュールを指定」したり、「インストール先を変更」したりするための UI が必要となるケースが多いです。
しかし、これもやはり 1 から構築するのはそれ相応の手間がかかってしまいます。
そこで、 WiX Toolset ではそうしたニーズに対応するための標準 UI が提供されています。
WiX Toolset に含まれる主な標準 UI を紹介します。
画面 ID | 概要 |
---|---|
AdvancedWelcomeEulaDlg | 使用許諾契約 (End-User License Agreements) を表示するダイアログです。 LicenseAgreementDlg と違い、画面下に「詳細設定 (Advanced) 」と「インストール (Install) 」ボタンが表示されるため、デフォルトインストールを手早く実行出来る様になっています。 |
BrowseDlg | インストール先のフォルダを選択するダイアログです。( InstallDirDlg で「参照 (Browse) 」ボタンを押した際に表示されるダイアログ) |
CancelDlg | ユーザーがインストールのキャンセルを要求した際に、キャンセルの確認を行うダイアログです。 |
CustomizeDlg | 機能選択、インストール先フォルダ指定、ディスク使用量の表示を行えるダイアログです。 |
DiskCostDlg | インストールするドライブを選択出来、そのドライブの使用領域情報を表示可能なダイアログです。 |
ErrorDlg | インストーラの実行中に発生したエラーを通知するダイアログです。ユーザーが操作の再実行を指示することも出来る様になっています。 |
ExitDlg | インストーラによるセットアップが正常に完了した際に表示されるダイアログです。オプションでチェックボックスとカスタムのテキストを表示することが可能になっています。 |
FatalError | インストーラによるセットアップに失敗した際に表示されるダイアログです。 |
FeaturesDlg | インストールする機能を選択するダイアログです。 |
FilesInUse | インストーラによって更新する対象ファイルが他のアプリケーションによって使用中の場合に表示されるダイアログです。ユーザーは「再試行 (Retry) 」、「無視 (Ignore) 」、「終了 (Exit) 」から処理を選択することが出来ます。 |
InstallDirDlg | インストール先のフォルダを入力可能なダイアログです。入力されたフォルダがインストール先として有効であるかを検証する機能も持っています。 |
InstallScopeDlg | すべてのユーザー向けにインストールするか、インストールを実行しているユーザー用にインストールするかを選択可能なダイアログです。 |
InvalidDirDlg | インストール先として指定されたフォルダが無効である場合に表示されるダイアログです。 |
LicenseAgreementDlg | 使用許諾契約 (End-User License Agreements) を表示するダイアログです。 |
MaintenanceTypeDlg | インストール済製品のインストーラを実行した際に、対象製品の修復や削除のメニューを提供するダイアログです。 |
MaintenanceWelcomeDlg | インストール済製品のインストーラを実行した際にアナウンス情報を表示するダイアログです。 |
MsiRMFilesInUse | FilesInUse と似た機能を有しますが、 Windows の再起動マネージャとの対話機能も持つダイアログです。ユーザーは対象のアプリケーションを自動的に閉じるか、セットアップ完了後に再起動を行うかを選択することが出来ます。 |
OutOfDiskDlg | 選択したドライブのディスク容量が不足している場合に通知メッセージを表示するダイアログです。 |
OutOfRbDiskDlg | OutOfDiskDlg と似た機能を有しますが、 Windows Installer のロールバック機能を無効にすることが出来ます。 |
PrepareDlg | インストーラ機能時のセットアップ初期化中に表示されるシンプルな進捗ダイアログです。 |
ProgressDlg | インストール実行中に進捗状況と実行アクションの情報メッセージを表示するダイアログです。 |
ResumeDlg | 中断されたセットアップを再開する際に表示されるダイアログです。 |
SetupTypeDlg | インストール形式を「標準 (Typical) 」、「カスタム (Custom) 」、「完全 (Complete) 」から選択することが出来るダイアログです。 |
UserExit | ユーザーによってセットアップがキャンセルされた場合に表示されるダイアログです。 |
VerifyReadyDlg | インストールを開始する直前に表示されるダイアログです。システムへの変更を行う前にユーザーに最終確認を求めることが出来ます。 |
WaitForCostingDlg | ディスクコストの計算中に表示されるダイアログです。 |
WelcomeDlg | 対象の製品がインストールされていない状態でインストーラを実行した際に表示されるエントランス画面を提供するダイアログです。 |
WelcomeEulaDlg | 使用許諾契約 (End-User License Agreements) を表示するダイアログです。 Minimal UI セット(後述)でのみ利用され、ユーザーの同意を受けてインストールを開始するために使用します。 |
また、この標準 UI に対して、更に "Mondo", "FeatureTree", "Minimal", "InstallDir", "Advanced" の 5 種類のシーケンスが用意されており、これらのシーケンスを利用することで、比較的容易に UI を持ったインストーラを提供することが可能になっています。
5 つのシーケンスを順に紹介しておきます。
Mondo
Mondo は WiX Toolset で提供されている標準 UI を全て提供するシーケンスです。
使用許諾画面、インストール形式(「標準」、「カスタム」、「すべて」)の選択、機能選択、インストール先の選択、インストール時の必要容量の確認等を行う画面が提供されます。また、メンテナンス用の画面も含まれています。
FeatureTree
FeatureTree は Mondo からインストール形式の選択画面を除外したシーケンスです。(常に「カスタム」形式でのインストールとみなされます)
Minimal
Minimal は WiX Toolset で提供されているシーケンスの中で最も小規模なもので、使用許諾画面のみが提供されます。
インストール先の変更も出来ないため、アドオン等、インストール先を固定する必要のあるモジュールのインストール等で利用されます。
InstallDir
InstallDir は Minimal にインストール先の選択画面を追加したものになります。
カスタムインストールが不要なアプリケーションのインストーラを作成する際に利用されます。
Advanced
Advanced は任意の画面を組み合わせ可能なシーケンスです。(最小構成は Minimal と同等)
UI セットの利用方法
先に紹介した UI シーケンスをインストーラで利用するには、 UIRef タグで対象の UI セットを読み込みます。
<Product> <UIRef Id="WixUI_InstallDir" /> </Product>
※各 UI シーケンスに対応する UI セットは「 "WixUI_" + シーケンス名」で定義されています。
UI のカスタマイズ
この様に、標準 UI を使うことで、色々なパターンの UI を提供することが可能になります。
しかし、状況によっては標準 UI にない画面*1を提供したいケースもあると思います。
その場合、独自の UI を設計して表示させることも可能です。
独自 UI の作成
独自の UI (ダイアログ)を作成する際は、 Dialog タグを使用します。
独自 UI のダイアログの例を見てみましょう。
- SampleDialog.wxi
<UI> <Dialog Id="SampleDialog" Width="400" Height="300" NoMinimize="yes" Title="サンプル画面"> <Control Type="Text" Id="Desc" Width="350" Height="35" X="10" Y="10" Text="サンプル画面の概要" /> <Control Type="Line" Id="DescLine" Width="390" Height="15" X="5" Y="50" /> <Control Type="PushButton" Id="Next" Width="90" Height="20" X="200" Y="275" Text="次へ"> <Publish Event="EndDialog" Value="Return">1</Publish> </Control> <Control Type="PushButton" Id="Cancel" Width="90" Height="20" X="300" Y="275" Text="キャンセル"> <Publish Event="SpawnDialog" Value="CancelDialog">1</Publish> </Control> </Dialog> </UI>
- Dialog タグ
Dialog タグには以下の属性を設定可能です。
※ Id, Height, Width の各属性は必須指定項目です。
属性名 | 設定する値 |
---|---|
Id | ダイアログの識別子を指定します。 識別子として任意の文字列を指定可能ですがインストーラの中で一意となる値を指定する必要があります。 |
CustomPalette | ダイアログ内の画像の表示にカスタムパレットを使用する場合は "yes" を指定します。 |
ErrorDialog | このダイアログをエラーダイアログとする場合は "yes" を指定します。 |
Height | ダイアログの縦幅を指定します。 |
Hidden | このダイアログを非表示状態にする場合は "yes" を指定します。 |
KeepModeless | このダイアログが表示される際にモードレスダイアログを有効にしたままとする場合は "yes" を指定します。 |
LeftScroll | 縦スクロールバーをダイアログの左側に表示する場合は "yes" を指定します。 |
Modeless | ダイアログ表示時にモードレス状態とする場合は "yes" を指定します。 |
NoMinimize | ダイアログを最小化可能にする場合は "yes" を指定します。 |
RightAligned | ダイアログ内のテキストを全て右詰めにする場合は "yes" を指定します。 |
RightToLeft | テキストの表示方向を右から左にする場合は "yes" を指定します。 |
SystemModal | このダイアログをシステムモーダル*2として表示する場合は "yes" を指定します。 |
Title | ダイアログのタイトルを指定します。 |
TrackDiskSpace | ダイアログから定期的にディスク使用量の変更状況を確認する場合は "yes" を指定します。 |
Width | ダイアログの横幅を指定します。 |
X | ダイアログの初期表示横位置をパーセント値で指定します。 既定値は 50 です。 |
Y | ダイアログの初期表示縦位置をパーセント値で指定します。 既定値は 50 です。 |
- Control タグ
Dialog タグ内では Control タグで必要な UI コントロールを配置していきます。
Control タグには以下の属性を設定可能です。
※ Id, Height, Type, Width, X, Y の各属性は必須指定項目です。
属性名 | 設定する値 |
---|---|
Id | コントロールの識別子を指定します。 識別子として任意の文字列を指定可能ですがインストーラの中で一意となる値を指定する必要があります。 |
Bitmap | 対象のコントロールの表示にビットマップイメージを使用する場合は "yes" を指定します。 この属性は Type 属性に "RadioButton", "PushButton" のいずれかが指定された場合にのみ指定します。 |
Cancel | 対象のコントロールの動作の実行にエスケープキーを使用する場合は "yes" を指定します。 |
CDROM | 対象のコントロールが CD ドライブを対象とする場合は "yes" を指定します。 この属性はドライブレターやディレクトリを選択・表示するコントロールにのみ指定可能です。 |
CheckBoxPropertyRef | 別のコントロールに紐づけられたプロパティを対象のコントロールにも紐づける際にそのプロパティ名を指定します。 この属性を使用する際は "Property" 属性は指定できません。 この属性は Type 属性に "CheckBox" が指定された場合にのみ指定します。 |
CheckBoxValue | チェックボックスがチェックされた際に紐づけられたプロパティに設定する値を指定します。 この属性は Type 属性に "CheckBox" が指定された場合にのみ指定します。 |
ComboList | 対象のコントロールがコンボボックスの際に選択肢にない値を入力できない様にする場合は "yes" を指定します。 この属性は Type 属性に "ComboBox" が指定された場合にのみ指定します。 |
Default | 対象のコントロールの動作の実行にリターンキーを使用する場合は "yes" を指定します。 |
Disabled | 対象のコントロールを無効状態で表示する場合は "yes" を指定します。 |
ElevationShield | 対象のコントロールの動作の実行時に権限昇格を必要とする場合は "yes" を指定します。 この属性は Type 属性に "PushButton" が指定された場合にのみ指定します。 |
Fixed | 対象のコントロールがすべてのボリュームと固定 HDD ドライブを対象とする場合は "yes" を指定します。 この属性はドライブレターやディレクトリを選択・表示するコントロールにのみ指定可能です。 |
FixedSize | 対象のコントロールとして表示する画像の形状やサイズを変更せずにトリミング・中央揃えを行う場合は "yes" を指定します。 この属性は Type 属性に "RadioButton", "PushButton", "Icon" のいずれかが指定された場合にのみ指定します。 |
Floppy | 対象のコントロールが FD ドライブを対象とする場合は "yes" を指定します。 この属性はドライブレターやディレクトリを選択・表示するコントロールにのみ指定可能です。 |
FormatSize | 対象のコントロールの表示内容をファイルサイズのフォーマットで表示する場合は "yes" を指定します。 この属性は Type 属性に "Text" が指定された場合にのみ指定します。 |
HasBorder | 対象のコントロールの外枠とグループラベル文字列を表示する場合は "yes" を設定します。 この属性は Type 属性に "RadioButtonGroup" が指定された場合にのみ指定します。 |
Height | 対象のコントロールの矩形(四角形)の境界の高さを指定します。 負でない数値を指定する必要があります。 |
Hidden | 対象のコントロールを非表示にする場合は "yes" を指定します。 |
Icon | 対象のコントロールの表示にアイコンを使用する場合は "yes" を指定します。 この属性は Type 属性に "RadioButton", "PushButton" のいずれかが指定された場合にのみ指定します。 |
IconSize | 対象のコントロールとして表示するアイコンのサイズを "16", "32", "48" の中から指定します。 この属性は Type 属性に "RadioButton", "PushButton", "Icon" のいずれかが指定された場合にのみ指定します。 |
Image | 対象のコントロールの表示にイメージを使用する場合は "yes" を指定します。 この属性は Type 属性に "RadioButton", "PushButton", "Icon" のいずれかが指定された場合にのみ指定します。 |
Indirect | 対象のコントロールに紐づけられたプロパティの値とコントロールの内容の変更を随時同期する場合は "yes" を指定します。 |
Integer | 対象のコントロールに紐づけられたプロパティの値を整数として扱う場合は "yes" を指定します。 |
LeftScroll | 対象のコントロールのスクロールバーをコントロールの左端に表示する場合は "yes" を指定します。 |
Multiline | 対象のコントロールを複数行入力可能とする場合は "yes" を指定します。 この属性は Type 属性に "Edit" が指定された場合にのみ指定します。 |
NoPrefix | 対象のコントロールに表示される文字列の中で "&" に続く文字を下線付き文字で表示しない場合は "yes" を指定します。 この属性は Type 属性に "Text" が指定された場合にのみ指定します。 |
NoWrap | 対象のコントロールの表示を折り返さない様にする場合は "yes" を指定します。 この属性は Type 属性に "Text" が指定された場合にのみ指定します。 |
Password | 対象のコントロールをパスワード入力用とする場合は "yes" を指定します。 この属性は Type 属性に "Edit" が指定された場合にのみ指定します。 |
ProgressBlocks | 対象のプログレスバーの見た目を四角形の連続形式で表示する場合は "yes" を指定します。 この属性は Type 属性に "ProgressBar" が指定された場合にのみ指定します。 |
Property | 対象のコントロールに紐づけるプロパティ名を指定します。 この属性は対象のコントロールから値を取得する場合には必ず指定する必要があります。 |
PushLike | 対象のコントロールをトグルボタン形式で表示する場合は "yes" を指定します。 この属性は Type 属性に "RadioButton", "CheckBox" のいずれかが指定された場合にのみ指定します。 |
RAMDisk | 対象のコントロールが RAM ディスクを対象とする場合は "yes" を指定します。 この属性はドライブレターやディレクトリを選択・表示するコントロールにのみ指定可能です。 |
Remote | 対象のコントロールがリモートフォルダを対象とする場合は "yes" を指定します。 この属性はドライブレターやディレクトリを選択・表示するコントロールにのみ指定可能です。 |
Removable | 対象のコントロールがリムーバブルディスクを対象とする場合は "yes" を指定します。 この属性はドライブレターやディレクトリを選択・表示するコントロールにのみ指定可能です。 |
RightAligned | 対象のコントロールを右詰めで表示する場合は "yes" を指定します。 |
RightToLeft | 対象のコントロールを右から左に向かって表示する場合は "yes" を指定します。 |
ShowRollbackCost | 対象のコントロールに表示する使用容量にロールバック用のバックアップファイルのサイズを含める場合は "yes" を指定します。 この属性は Type 属性に "VolumeCostList" が指定された場合にのみ指定します。 |
Sorted | 対象のコントロールの中身をコントロールで定められた順番で表示する場合は "yes" を指定します。 この属性に "no" が指定された場合、もしくはこの属性が指定されなかった場合はアルファベット順で表示します。 この属性は Type 属性に "ListBox", "ListView", "ComboBox" のいずれかが指定された場合にのみ指定します。 |
Sunken | 対象のコントローラをくぼんだ状態で表示する場合は "yes" を指定します。 |
TabSkip | 対象のコントロールをタブストップ対象外とする場合は "yes" を指定します。 |
Text | 対象のコントロールの初期値となる文字列を指定します。 |
ToolTip | 対象のコントロールのツールチップに表示する文字列を指定します。 |
Transparent | 対象のコントロールの背景色を透過にする場合は "yes" を指定します。 この属性は Type 属性に "Text" が指定された場合にのみ指定します。 |
Type | 対象のコントロールのタイプを以下の中から指定します。
|
UserLanguage | 対象のコントロールに表示する文字列のコードにインストールユーザーのデフォルト設定を使用する場合は "yes" を指定します。 この属性は Type 属性に "Text" が指定された場合にのみ指定します。 |
Width | 対象のコントロールの矩形(四角形)の境界の幅を指定します。 負でない数値を指定する必要があります。 |
X | 対象のコントロールの矩形(四角形)の境界左上隅の(左端を 0 とした)水平方向の座標を指定します。 負でない数値を指定する必要があります。 |
Y | 対象のコントロールの矩形(四角形)の境界左上隅の(上端を 0 とした)垂直方向の座標を指定します。 負でない数値を指定する必要があります。 |
- Publish タグ
ボタンを押した際等に実行する処理は Publish タグで設定します。
Publish タグには以下の属性を設定可能です。
※ Publish タグの属性は任意指定項目ですが、 Event 属性か Property 属性のいずれかを指定する必要があります。
属性名 | 設定する値 |
---|---|
Control | Publish の対象となる Control 要素の ID を指定します。 この属性は Publish タグを UI タグの直下に指定する場合にのみ指定します。 |
Dialog | Publish の対象となる Dialog 要素の ID を指定します。 この属性は Publish タグを UI タグの直下に指定する場合にのみ指定します。 |
Event | トリガするイベントを指定します。 Property 属性を指定する場合は Event 属性は指定することは出来ません。 |
Order | Publish の対象となる要素に対して複数の Publish タグを指定する際に、それぞれの処理の実行順序を指定します。 |
Property | プロパティへの値をセットする場合に対象のプロパティの ID を指定します。 Event 属性を指定する場合は Property 属性は指定することは出来ません。 |
Value | Property 属性が指定されている場合、このプロパティの設定値を対象のプロパティに設定します。 対象のプロパティに null を設定する場合はこの属性を省略してください。 Event 属性が指定されている場合は、この属性の設定値は対象イベントの引数となります。 |
この様に、 Control や Publish 等のタグを組み合わせて独自の UI (ダイアログ)を作成することが出来ます。
インストーラの動作をカスタマイズする
独自 UI をインストーラの実行時に表示するためには、インストーラの動作を変更する必要があります。
インストーラの動作は InstallUISequence 及び InstallExecuteSequence タグで制御が可能です。
独自 UI を表示に追加する
独自に追加した UI は InstallUISequence 内で呼出の制御を指定します。
UI の呼び出しは Show タグで行います。
<InstallUISequence> <Show Dialog="SampleDialog" After="CostFinalize" /> </InstallUISequence>
Show タグには以下の属性を設定可能です。
※ Dialog 属性は必須指定項目です。
※ After, Before, OnExit, Sequence 属性はいずれかひとつのみ設定可能です。
属性名 | 設定する値 |
---|---|
After | 対象のダイアログを表示するひとつ前のダイアログの ID を指定します。 対象となるダイアログは、 After 属性で指定されたダイアログが終了した直後に表示されます。 |
Before | 対象のダイアログを表示するひとつ後のダイアログの ID を指定します。 対象となるダイアログは、 Before 属性で指定されたダイアログが表示される直前に表示されます。 |
Dialog | 表示対象のダイアログの ID を指定します。 |
OnExit | 対象のダイアログをセットアップの終了時に表示する場合に、 "success" (インストール成功) , "cancel" (インストールキャンセル) , "error" (インストールエラー発生) , "suspend" (インストール中断)の中から指定します。 |
Overridable | 別のシーケンス定義の中で対象のダイアログ表示処理を無効化出来る様にする場合は "yes" を指定します。 |
Sequence | 対象のダイアログを表示する順番を示すシーケンス番号を指定します。 |
処理を追加・削除する
UI 以外の処理を追加する際は InstallExecuteSequence 内で指定します。
独自の処理( CustomAction : 後述)は Custom タグで追加します。
<InstallExecuteSequence> <Custom Action="LaunchApp" After="CostFinalize" /> </InstallExecuteSequence>
Custom タグには以下の属性を設定可能です。
※ Action 属性は必須指定項目です。
※ After, Before, OnExit, Sequence 属性はいずれかひとつのみ設定可能です。
属性名 | 設定する値 |
---|---|
Action | 対象とする独自処理の ID を指定します。 |
After | 対象の処理を実行するひとつ前の処理の ID を指定します。 対象となる処理は、 After 属性で指定された処理が終了した直後に実行されます。 |
Before | 対象の処理を実行するひとつ後の処理の ID を指定します。 対象となる処理は、 Before 属性で指定された処理が実行される直前に実行されます。 |
OnExit | 対象の処理をセットアップの終了時に実行する場合に、 "success" (インストール成功) , "cancel" (インストールキャンセル) , "error" (インストールエラー発生) , "suspend" (インストール中断) の中から指定します。 |
Overridable | 別のシーケンス定義の中で対象の処理を無効化出来る様にする場合は "yes" を指定します。 |
Sequence | 対象の処理を実行する順番を示すシーケンス番号を指定します。 |
独自処理を定義する
「指定したアプリケーションを起動する」等の独自処理を追加する際は、 CustomAction タグを使用します。
<CustomAction Id="LaunchApp" FileKey="ApplicationFile" ExeCommand="" Return="asyncNoWait" />
CustomAction タグには以下の属性を設定可能です。
※ Id 属性は必須指定項目です。
属性名 | 設定する値 |
---|---|
Id | 独自処理の識別子を指定します。 識別子として任意の文字列を指定可能ですがインストーラの中で一意となる値を指定する必要があります。 |
BinaryKey | 対象の独自処理が含まれているバイナリファイルを示す ID を指定します。 |
Directory | 対象の独自処理で実行する実行ファイルが含まれているディレクトリ、もしくは対象の独自処理を実行する際の作業ディレクトリを示す ID を指定します。 |
DllEntry | 対象の独自処理を示す関数の名称を指定します。 |
Error | ダイアログ表示するエラーメッセージを示すメッセージのインデックスを指定します。 |
ExeCommand | 対象の独自処理を実行する際のコマンドラインパラメータを指定します。 |
Execute | 対象の独自処理の実行タイミングを、 "commit" (インストールスクリプトが成功して完了した時) , "deferred" (スクリプト内(権限昇格が必要)) , "firstSequence" (実行される最初のシーケンスでのみ) , "immediate" (通常処理中:既定) , "onePerProcess" (同一プロセス内で最初のシーケンスでのみ) , "rollback" (インストール中に障害が発生した際のロールバック処理時) , "secondSequence" (前回のシーケンスで以前実行された独自処理を再実行する場合)の中から指定します。 |
FileKey | 対象の独自処理が含まれるファイルのファイル ID を指定します。 |
HideTarget | 対象の独自処理の実行( Execute 属性に deffered が指定された場合)の際に引き渡されるパラメータをログに記録しない場合は "yes" を指定します。 |
Impersonate | 対象の独自処理の実行をユーザー権限で実行する場合は "yes" を指定します。 対象の独自処理をマシンに適用する(権限昇格を行う必要がある)場合のみ "no" を指定します。 |
JScriptCall | BinaryKey もしくは FileKey で指定されたファイル内で実行する JScript 関数の名前を指定します。 |
PatchUninstall | 対象の独自処理をパッチアンインストール時のみに実行する場合は "yes" を指定します。 |
Property | 対象の独自処理の実行時に参照するプロパティを示す ID を指定します。 |
Return | 対象の独自処理の処理結果を、 "asyncNoWait" (非同期で実行し、インストーラ終了後も処理を続行する) , "asyncWait" (非同期で実行するが、インストーラ終了時に対象の処理の終了を待機する) , "check" (同期的に実行され、処理結果の成功有無をチェックする:既定) , "ignore" (同期的に実行されるが、処理結果の成功有無はチェックしない)の中から指定します。 |
Script | 独自処理としてスクリプトを実行する際に、スクリプトの種類を "jscript" , "vbscript" の中から指定します。 実際に実行するスクリプトは CustomAction の内容として文字列で指定します。 |
SuppressModularization | 対象の独自処理がマージモジュール内でモジュール化されないようにする場合は "yes" を指定します。 |
TerminalServerAware | ターミナルサーバマシン上でマシン単位にインストールを行う際に、ログインユーザを偽装して対象の独自処理を実行する場合は "yes" を指定します。 |
Value | 対象の独自属性で使用する文字列を指定します。 |
VBScriptCall | BinaryKey もしくは FileKey で指定されたファイル内で実行する VBScript 関数の名前を指定します。 |
Win64 | 対象の独自処理が VBScript もしくは JScript の際に 64bit プラットフォームで実行する場合は "yes" を指定します。 既定値はインストーラの実行プラットフォームに依存します。 |
CustomAction の各属性は、実行する独自処理の種類によって指定するものが異なります。
CustomAction で実行可能な独自処理は以下の通りになっています。
実行する独自処理によって指定すべき属性が異なるので注意が必要です。
( ID 等、処理の種類に依存しない属性は省略)
Type*3 | 処理の種類 | 指定が必要な属性 | 指定する値 |
---|---|---|---|
1 | インストーラ内のバイナリの実行 | BinaryKey | バイナリファイルの ID |
DllEntry | 実行する関数の名称 | ||
2 | インストーラ内の実行可能ファイルの実行 | BinaryKey | 実行可能ファイルの ID |
ExeCommand | コマンドラインパラメータ | ||
5 | インストーラ内のJScriptファイルの実行 | BinaryKey | JScriptファイルの ID |
JScriptCall | 実行する関数の名称 | ||
6 | インストーラ内のVBScriptファイルの実行 | BinaryKey | VBScriptファイルの ID |
VBScriptCall | 実行する関数の名称 | ||
17 | インストールされるDLLの実行 | DllEntry | 実行する関数の名称 |
FileKey | インストールされるDLLファイルの ID | ||
18 | インストールされる実行可能ファイルの実行 | ExeCommand | コマンドラインパラメータ |
FileKey | インストールされる実行可能ファイルの ID | ||
19 | エラーメッセージの表示 | Error | メッセージのインデックス |
21 | インストールされるJScriptファイルの実行 | FileKey | インストールされるJScriptファイルの ID |
JScriptCall | 実行する関数の名称 | ||
22 | インストールされるVBScriptファイルの実行 | FileKey | インストールされるVBScriptファイルの ID |
VBScriptCall | 実行する関数の名称 | ||
34 | コマンドの実行 | Directory | 作業ディレクトリの ID |
ExeCommand | 実行するコマンド及びコマンドラインパラメータ | ||
35 | インストール先ディレクトリの設定 | Directory | 設定するディレクトリの ID |
Value | 設定するディレクトリパス | ||
37 | JScriptコードの実行 | Script | "jscript" |
38 | VBScriptコードの実行 | Script | "vbscript" |
50 | プロパティで指定された実行可能ファイルの実行 | ExeCommand | コマンドラインパラメータ |
Property | 実行可能ファイルのパスを示すプロパティの ID | ||
51 | プロパティの設定 | Property | 値を設定するプロパティの ID |
Value | プロパティに設定する値 | ||
53 | プロパティで指定されたJScriptコードの実行 | Property | 実行するスクリプトが設定されたプロパティの ID |
54 | プロパティで指定されたVBScriptコードの実行 | Property | 実行するスクリプトが設定されたプロパティの ID |