前回は「WixEditを用いたインストーラ」 に示したようにWixEditを使用しましたが、今回はInno Setup(ver5.5.8)を使用してWindows用のインストーラを作成します。主に、Inno Setupで表示できるWizard Pagesとインストールした場合にパソコンに作成できるファイルについて説明します。

Inno Setupのダウンロード/インストール

Inno Setup をInno Setup Downloadsから、次に示すInno Setup Stable Release packageをダウンロードしてインストールします。インストーラの日本語化に必要はパッケージも含まれています。

Inno Setupのダウンロード

インストールすると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]にインストールするコンポーネントを記述すると、インストールするコンポーネントを選択できます。

コンポーネントの選択画面