前回の続きです。
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 | トラックバック