チェックON時のみプログラムを実行する方法です。
まずユーザーインターフェースエディタで終了ノードに「チェックボックス(A)」ダイアログを追加します。
次にカスタムアクションとして実行するVBScript「CustomAction.vbs」を用意します。
Dim WshShell Dim path, manufacturer, productName if Session.Property("CHECKBOXA1") then manufacturer = Session.Property("Manufacturer") productName = Session.Property("ProductName") path = """" & Session.Property("TARGETDIR") & "WindowsApplication1.exe " & """" & " " & manufacturer & " " & productName set WshShell = CreateObject("WScript.Shell") WshShell.Run path end if
※パスの指定方法
コマンドライン引数がない場合
path = """" & Session.Property("TARGETDIR") & "WindowsApplication1.exe " & """"
コマンドライン引数がある場合
path = """" & Session.Property("TARGETDIR") & "WindowsApplication1.exe " & """" & " " & 引数1 & " " & 引数2
作成したカスタムアクション「CustomAction.vbs」ファイルをアプリケーションフォルダに配置します。
セットアッププロジェクトをビルドし、MSIファイルを作成します。
作成したMSIファイルをORCAで開きます。
「File]」テーブルの「FileName」フィールドが「CustomAction.vbs」のデータを探します。
該当データの「File」フィールド値をコピーします。
※「File」フィールド値が「_77760E20AE324214B847ADADACA85FA6」であるとします。
「CustomAction」テーブルに以下の行を追加します。
Action | Type | Source | Target |
---|---|---|---|
AC1 | 22 | _77760E20AE324214B847ADADACA85FA6 |
ActionフィールドはCustomActionテーブル内で一意になるよう名前をつけます。
TypeフィールドはVBScriptファイルである定数値22を指定します。
その他の定数値はCustom Action Typesを参照してください。
Sourceフィールドは先程の「CustomAction.vbs」のFileフィールド値を指定します。
「ControlEvent」テーブルに以下の行を追加します。
Dialog_ | Control_ | Event | Argument | Condition | Ordering |
---|---|---|---|---|---|
FinishedForm | CloseButton | DoAction | AC1 | 1 | 1 |
以上でORCAでの編集は終了です。
作成したMSIファイルでインストールを実行し、チェックボックスダイアログでチェックONした時のみプログラムが実行される事を確認してください。
0 件のコメント:
コメントを投稿