前回は「WixEditを用いたインストーラ」 に示したようにWixEditを使用しましたが、今回はInno Setup(ver5.5.8)を使用してWindows用のインストーラを作成します。主に、Inno Setupで表示できるWizard Pagesとインストールした場合にパソコンに作成できるファイルについて説明します。
Inno Setupのダウンロード/インストール
Inno Setup をInno Setup Downloadsから、次に示すInno Setup Stable Release packageをダウンロードしてインストールします。インストーラの日本語化に必要はパッケージも含まれています。
インストールするとWelcomeダイアログが表示されますがCancelボタンを押し、スクリプトを入力する画面を表示します。表示されているツールバーを使用してインストーラを作成します。Compileボタンを押すと作成したスクリプトをコンパイルし、Runボタンを押すとコンパイルしたスクリプトを実行します。
簡単なスクリプトによるインストーラの作成
最初に、インストーラのファイルを作成するスクリプトを次のように作ります。インストーラのファイルはスクリプトと同じディレクトリにフォルダ名「Output」を作成し、その中に今回のスクリプトでは、ファイル名「InnSetupApp.exe」として作成します。
//インストーラーで配布するフォルダの定義
#define AppDir “C:\xxxxxxx”
[Setup]
// アプリ名
AppName = InnSetup
// アプリ名+バージョン
AppVerName = InnSetup 1.0
// アーカイブ名
OutputBaseFilename = InnSetupApp
// 初期インストールディレクトリ
DefaultDirName = {pf}\InnSetup
[Languages]
Name: “jp”; MessagesFile: “compiler:Languages\Japanese.isl”
[Files]
Source: “{#AppDir}\InnSetup.exe” ; DestDir: “{app}”; Flags: ignoreversion
Source: “{#AppDir}\ja\InnSetup.resources.dll” ; DestDir: “{app}\ja”; Flags: ignoreversion
- 作成したソフトは「[Files]」でインストーラに組み込みます。「Source」に作成したプログラムのファイルを設定し、「DestDir」でインストーラで設定するフォルダを指定します。
- Wizard Pages「インストール先の指定」で表示されるディレクトリは「DefaultDirName」で設定したディレクトリが表示されます。
- OutputBaseFilenameで指定されたファイル名「InnSetupApp」が、インストールファイル名「InnSetupApp.exe」となります。
- {app}は、Wizard Pages「インストール先の指定」で設定したディレクトリを示し、{pf}はプログラムフォルダ「C:\Program Files」を示します。
- [Files]で指定している「{#AppDir}」は、#defineで定義された「AppDir」を示します。このスクリプトでは、インストーラに保存する実行ファイルのディレクトリを示します。
上記のスクリプトを実行すると、次の3つのWizard Pagesが順に表示されます。
インストール先の指定
インストール準備完了
セットアップウイザート完了
インストールが完了すると、インストーラで指定した「C:\Program Files\innSetup」に次のように実行ファイルとアンインストール用の実行ファイルが書き込まれます。
Wizard Pagesの追加
inno setupはスクリプトを追加すると様々なWizard Pagesが作成できます。
セットアップウイザートの開始
次のスクリプトを追加すると、次のセットアップウイザートの開始画面が表示されます。
DisableWelcomePage = no
使用許諾契約書の同意
次のスクリプトを追加すると、次の使用許諾契約書の同意画面が表示されます。使用許諾契約書のテンプレートファイルは、inno setupのインストールフォルダに保存されており、インストーラのスクリプトファイルと同じディレクトリに設置します。
LicenseFile = Tomosoftlicense.txt
追加タスクの選択
次のスクリプトを追加すると、次の追加タスクの選択画面が表示されます。
[Tasks] Name: “startupicon”; Description: “スタートアップにショートカットを作成”; Flags:unchecked Name: “association”; Description: “ファイル拡張子にInnSetupを関連付け”; Flags:checkedonce
プログラムグループの指定
次のスクリプトを追加すると、次のプログラムグループの指定画面が表示されます。
[Setup]
//Select Start Menu Folder プログラムグループの指定
DisableProgramGroupPage = no
DefaultGroupName = InnSetup
[Icons]
Name: “{group}\InnSetup Program”; Filename: “{app}\InnSetup.exe”; WorkingDir: “{app}”
Name: “{group}\InnSetupのアンインストール”; Filename: “{uninstallexe}”
次のようにスタートメニューに登録されます。
セットアップウイザート完了
次のスクリプトを追加すると、セットアップ完了後に実行する項目を選択することができます。
[Run]
Filename: “{app}\readme.txt”; Description: “READMEを表示する”; Flags: postinstall shellexec skipifsilent unchecked
Filename: “{app}\InnSetup.exe”; Description: “アプリケーションを起動する”; Flags: postinstall shellexec skipifsilent
コントロールパネルへのアプリケーション登録
コントロールパネルのアプリケーション登録は、次のようなスクリプトを[Setup]に記述します。実際に登録されたアプリケーションは次のようになります。
// 配布元
AppPublisher=info@tomosoft.jp
// アプリケーション配布元 Webサイトの URL
AppPublisherURL=https://tomosoft.jp/design/
// アプリケーション バージョン
AppVersion={#AppVer}
上記作成したスクリプトをまとめたもの
上記説明したWizard Pagesを作成するスクリプトをまとめたものを次に示します。
//インストーラーで配布するフォルダの定義
#define AppDir "C:xxxx"
#define AppVer "1.08"
[Setup]
//Welcome
DisableWelcomePage = no
//License Agreement
LicenseFile = Tomosoftlicense.txt
// Password
Password = sakura123
//Information
InfoBeforeFile = infobefore.txt
//User Information
UserInfoPage = yes
//Select Destination Location
DisableDirPage = no
//Select Components
//Select Start Menu Folder プログラムグループの指定
DisableProgramGroupPage = no
DefaultGroupName = InnSetup
//Preparing to Install
CloseApplications = yes
//Select Tasks 追加タスクの選択
// アプリ名
AppName = InnSetup
// アプリ名+バージョン
AppVerName = InnSetup 1.0
// アーカイブ名
OutputBaseFilename = InnSetupApp
// 初期インストールディレクトリ {pf} はプログラムファイルフォルダを指す定数です
UsePreviousAppDir = no
DefaultDirName = {pf}\InnSetup
// 配布元
AppPublisher=info@tomosoft.jp
// アプリケーション配布元 Webサイトの URL
AppPublisherURL=https://tomosoft.jp/design/
// アプリケーション バージョン
AppVersion={#AppVer}
[Languages]
Name: "jp"; MessagesFile: "compiler:Languages\Japanese.isl"
Name: "en"; MessagesFile: "compiler:Default.isl"
[Files]
Source: "{#AppDir}\InnSetup.exe" ; DestDir: "{app}"; Flags: ignoreversion
Source: "{#AppDir}\ja\InnSetup.resources.dll" ; DestDir: "{app}\ja"; Flags: ignoreversion
[Components]
Name: "main"; Description: "メインファイル"; Types: full compact custom; Flags: fixed
Name: "help"; Description: "ヘルプファイル"; Types: full
Name: "help\japanese"; Description: "日本語"; Types: full
Name: "help\english"; Description: "英語"; Types: full
[Icons]
Name: "{group}\InnSetup Program"; Filename: "{app}\InnSetup.exe"; WorkingDir: "{app}"
Name: "{group}\InnSetupのアンインストール"; Filename: "{uninstallexe}"
[Tasks]
Name: "startupicon"; Description: "スタートアップにショートカットを作成"; Flags:unchecked
Name: "association"; Description: "ファイル拡張子にInnSetupを関連付け"; Flags:checkedonce
[Run]
Filename: "{app}\readme.txt"; Description: "READMEを表示する"; Flags: postinstall shellexec skipifsilent unchecked
Filename: "{app}\InnSetup.exe"; Description: "アプリケーションを起動する"; Flags: postinstall shellexec skipifsilent
[Code]
function CheckSerial(Serial: String): Boolean;
begin
Result := true;
SaveStringToFile('c:\Registration.txt', Serial, False);
end;
このスクリプトには、すでに説明したWizard Pageの他に次のWizard Pageも含まれています。
多言語の選択メニューの表示
[Languages]に複数の使用言語を記述すると、次の言語の選択プルダウンメニューが表示されます。
パスワード入力画面
[Setup]に「Password = xxxx」を記述すると、次のパスワード入力画面が表示されます。ただし、このパスワードは暗号化されていないので、運用には十分に注意する必要があります。
ユーザー情報の入力画面
[Setup]にUserInfoPage = yesを記述し、[Code]でCheckSerial関数を記述すると、シリアル番号を含めたユーザ―情報の入力画面が表示されます。ただし、このシリアル番号は暗号化されていないので、運用には十分に注意する必要があります。
コンポーネントの選択画面
[Components]にインストールするコンポーネントを記述すると、インストールするコンポーネントを選択できます。















