2004年07月17日

Inno Setupの使用例(2/3)

前回の続きです。

Inno Setupはスクリプトファイルを元にインストーラーを作成するツールです。
よってスクリプトファイルの記述内容が全てです。

Inno Setupにはサンプルスクリプトファイルが付属していますので、 基本的な使い方ならばサンプルスクリプトファイルをしばらく弄れば理解できるでしょう。

ここで説明するのは、基本的な使い方ではなく、 Heimdallr用スクリプトファイルで使っている色々な小技についてです。

まずは全体をみてしまいましょう。Heimdallr用スクリプトファイルは 以下のようになっています。

; -- heimdallr.iss --
; heimdallrセットアップファイル作成用スクリプト

[Setup]
AppName=Heimdallr
AppId=http://www.sutosoft.com/applictions/heimdallr/appid/1
AppMutex=http://www.sutosoft.com/applications/heimdallr
AppPublisher=SutoSoft
AppPublisherURL=http://www.sutosoft.com/room/
AppVersion=1.05
AppVerName=Heimdallr 1.05
DefaultDirName={pf}\Heimdallr
DefaultGroupName=Heimdallr
UninstallDisplayIcon={app}\Heimdallr.exe
OutputBaseFilename=heim105
OutputDir=".."
ShowLanguageDialog=no

[Tasks]
Name: "startupicon"; Description: "スタートアップにショートカットを作成"; GroupDescription: "スタートアップ"; Flags:

[Files]
Source: "..\exe\Heimdallr.exe";   DestDir: "{app}";      Flags: ignoreversion
Source: "..\exe\Heimdallr.chm";   DestDir: "{app}";      Flags: ignoreversion
Source: "..\exe\init.xml";        DestDir: "{app}";      Flags: ignoreversion
Source: "..\exe\readme.txt";      DestDir: "{app}";      Flags: ignoreversion
Source: "..\exe\UNLHA32.DLL";     DestDir: "{app}";
Source: "..\exe\UNLHA32.TXT";     DestDir: "{app}";
Source: "..\exe\skin\*.xml";      DestDir: "{app}\skin"; Flags: ignoreversion
Source: "..\exe\skin\*.skn";      DestDir: "{app}\skin"; Flags: ignoreversion

[Icons]
Name: "{group}\Heimdallr"; Filename: "{app}\Heimdallr.exe";             WorkingDir: "{app}"
Name: "{group}\Heimdallrのアンインストール"; Filename: "{uninstallexe}"
Name: "{userstartup}\Heimdallr"; Filename: "{app}\Heimdallr.exe";       WorkingDir: "{app}"; Tasks: startupicon

[Languages]
Name: "jp"; MessagesFile: "compiler:Japanese.isl"
Name: "en"; MessagesFile: "compiler:Default.isl"

[Registry]
Root: HKCU; Subkey: "Software\SutoSoft"; Flags: uninsdeletekeyifempty
Root: HKCU; Subkey: "Software\SutoSoft\Heimdallr"; Flags: uninsdeletekey

[Run]
Filename: "{app}\readme.txt"; Description: "READMEを表示する"; Flags: postinstall shellexec skipifsilent unchecked
Filename: "{app}\Heimdallr.exe"; Description: "アプリケーションを起動する"; Flags: postinstall shellexec skipifsilent

全体を見たところで、先頭から少しずつ解説していきます。

[Setup]

Setupセクションの説明です。

AppName=Heimdallr

アプリケーション名です。

AppId=http://www.sutosoft.com/applictions/heimdallr/appid/1

これは、アプリケーションを識別するためのIDです。 Heimdallrは、商標登録してあるわけでもないので、他の人がHeimdallrという名前の アプリケーションを作ることも考えられます。
IDをHeimdallrとしてしまうと、そういう他のアプリケーションのIDと一致してしまうかもしれません。
そこで、URIを使うことにより他のアプリケーションのIDと一致してしまうことを防いでいます。

AppMutex=http://www.sutosoft.com/applications/heimdallr

この指定により、Heimdallr起動中にインストールできないようにしています。
Heimdallrでは、複数起動防止のため、「http://www.sutosoft.com/applications/heimdallr」という名前のMutexを確保してます。これをインストーラーでもチェックすることにより、 Heimdallr起動中のインストールを防いでいるわけです。

AppPublisher=SutoSoft
AppPublisherURL=http://www.sutosoft.com/room/
AppVersion=1.05
AppVerName=Heimdallr 1.05

ここは特に説明の必要は無いと思います。見たまんまです。

DefaultDirName={pf}\Heimdallr

デフォルトのインストール先がProgram File\Heimdallrになるようにしてます。 {pf}というのはProgram Filesフォルダを意味しています。

DefaultGroupName=Heimdallr

スタートメニューにHeimdallrというグループ(フォルダ)を作るようにしてます。

UninstallDisplayIcon={app}\Heimdallr.exe

コントロールパネルのアプリケーションの追加と削除の所に表示するアイコンを指定します。ここでは、Heimdallr.exeという実行ファイルを指定しているので、この実行ファイルのアイコンがそのまま使われます。

OutputBaseFilename=heim105

インストーラーのファイル名です。この指定により、「heim105.exe」というインストーラーが 作成できます。

OutputDir=".."

インストーラーの出力先フォルダ。諸般の事情から一つ上のフォルダにheim105.exeを出力するようにしてます。

ShowLanguageDialog=no

この指定により、言語選択ダイアログが表示されなくなります。
詳しくはLanguageセクションの説明のところに書きます。

Setupセクションだけでだいぶ長くなってしまったので、 続きは次回にします。

投稿者 MASATO : 2004年07月17日 20:29 | トラックバック
コメント
コメントする









名前、アドレスを登録しますか?