InnoSetup のノウハウ

まあヘルプ読めば大体載ってることですが。

#define ディレクティブを使う

ISTool をインストールする。
QuickStart Pack を使って InnoSetup と一緒にインストールしてしまうと楽。

#define VERSION "1.0"
AppVersion={#VERSION}
Name: "{#VERSION}"

{} のエスケープ

{ は {{ のように書く。} はエスケープの必要なし。

インストール時に touch したい

無理。バッチファイル呼べ。

インストール時に mkdir したい

[Dirs]
Name: "{app}\dirname to make"

アンインストール時に rm したい

[UninstallDelete] セクションを使う。
ここではファイルだろうがディレクトリだろうが rm できる。

ウィンドウを表示せずにバッチファイルを呼びたい

Filename: "バッチファイル"; Flags: runhidden

wget したい

[Code]
function URLDownloadToFile(lpUnknown: LongInt; szURL, szFileName: PChar; dwReserved, lpfnCB: LongInt): LongInt;
external 'URLDownloadToFileA@urlmon.dll stdcall setuponly';

procedure DownloadFile(url: String);
begin
    UrlDownloadToFile(0, PChar(url), PChar(ExpandConstant('{tmp}') + '\' + ExtractFileName(url)), 0, 0);
end;

[Run]
; Visual C++ 2008 SP1
Filename: "{tmp}\vcredist_x86.exe"; Parameters: "/q"; StatusMsg: "Installing Visual C++ 2008 SP1 runtime ..."; Flags: skipifdoesntexist; BeforeInstall: DownloadFile('http://download.microsoft.com/download/d/d/9/dd9a82d0-52ef-40db-8dab-795376989c03/vcredist_x86.exe');