ときど記
URLが「http://」で始まるコメントは受け付けない仕様になっています。
「ttp://」として下さい。
また、日本語を含まないコメントも受け付けない仕様になっています。
ご不便をおかけしますが、ご了承下さい。

2009年11月08日(日)18:58  Inno Setup の覚書。
Inno Setup にて、OS 判定を行いたい場合の覚書です。


スペシャルサンクス:しらがさん、ちゃちゃん、あんとにおさん

今回は64ビットと32ビットに関してのみ記載。
使用するDLLを32ビットと64ビットで分けたかったので、以下の様にフォルダの指定とCheck: にてIs64BitInstallModeを判定。

Source: .\x64\System.Data.SQLite.DLL; DestDir: {app}; DestName: "System.Data.SQLite.DLL"; Check: Is64BitInstallMode; Flags: ignoreversion
Source: .\x86\System.Data.SQLite.DLL; DestDir: {app}; DestName: "System.Data.SQLite.DLL"; Check: not Is64BitInstallMode; Flags: ignoreversion

ただし、[Source]セクションに

ArchitecturesInstallIn64BitMode=x64

の記載が必要。

また、64ビットだけでなく、Itanium も切り分けたい場合は[Code]セクションにて

function IsX64: Boolean;
begin
Result := Is64BitInstallMode and (ProcessorArchitecture = paX64);
end;

function IsIA64: Boolean;
begin
Result := Is64BitInstallMode and (ProcessorArchitecture = paIA64);
end;

function IsOtherArch: Boolean;
begin
Result := not IsX64 and not IsIA64;
end;

と記載し、各ファンクション名をIs64BitInstallModeの代わりに使用する。

Source: .\x64\System.Data.SQLite.DLL; DestDir: {app}; DestName: "System.Data.SQLite.DLL"; Check: IsX64; Flags: ignoreversion
Source: .\Ita\System.Data.SQLite.DLL; DestDir: {app}; DestName: "System.Data.SQLite.DLL"; Check: IsIA64; Flags: ignoreversion
Source: .\x86\System.Data.SQLite.DLL; DestDir: {app}; DestName: "System.Data.SQLite.DLL"; Check: IsOtherArch; Flags: ignoreversion


参考URL

http://cvs.jrsoftware.org/view/issrc/Examples/64BitTwoArch.iss?revision=1.5&view=markup
http://cvs.jrsoftware.org/view/issrc/Examples/64BitThreeArch.iss?revision=1.5&view=markup


たぶん、本気でOSバージョンで判定したい場合は

http://nardog.takoweb.com/misc/mystral_kk/isfaq.html#difffiles

こちらに記述のある、MinVersion を使用すればよいと思われます。

http://dobon.net/vb/installer/installer2-11.html

こちらもご参考に。
ただ、MinVersion にどんな値を設定すれば想定どおりに動くかまでは検証してません(^^;;;

追記:
Inno Setup のヘルプより抜粋。

Windows versions:

4.0.950 Windows 95
4.0.1111 Windows 95 OSR 2 & OSR 2.1
4.0.1212 Windows 95 OSR 2.5
4.1.1998 Windows 98
4.1.2222 Windows 98 Second Edition
4.9.3000 Windows Me

Windows NT versions:

4.0.1381 Windows NT 4.0
5.0.2195 Windows 2000
5.01.2600 Windows XP or Windows XP 64-Bit Edition Version 2002 (Itanium)
5.02.3790 Windows Server 2003 or Windows XP x64 Edition (AMD64/EM64T) or Windows XP 64-Bit Edition Version 2003 (Itanium)
6.0.6000 Windows Vista
6.0.6001 Windows Vista with Service Pack 1 or Windows Server 2008

ということらしいです。

2個目のサンプルより、「MinVersion: 4.1,5」という記述があるので、前方一致にて処理してるのかもしれません。
当然ながら、Vistaまでであり、Win7 については不明でございます(笑)
コメント
Name   Message   

過去ログ 2005年07月 08月 09月 10月 12月 
2006年01月 02月 03月 04月 05月 06月 07月 08月 09月 11月 12月 
2007年01月 02月 07月 08月 11月 
2008年02月 03月 06月 
2009年07月 11月 12月 
2011年04月