如果安德斯的回答不够明确(我花了几个小时才把它弄好),这里有一个更“初学者友好”的版本。
您将需要添加!include WinVer.nsh到 cd.nsi 文件的顶部。
然后,您可以使用如下代码:
${If} ${IsWinXP}
MessageBox MB_OK|MB_ICONEXCLAMATION "We have Win XP"
${EndIf}
这是我测试的唯一功能,但 WinVer.nsh 文件以迷你手册开头,其功能包括:
AtLeastWin<version>它检查安装程序是否至少按照指定在 Windows 版本上运行。
IsWin<version>它检查安装程序是否完全按照指定在 Windows 版本上运行。
AtMostWin<version>它检查安装程序是否最多在指定的 Windows 版本上运行。
<version>可以替换为以下值(可能更多,取决于您的 WinVer.nsh 文件的最新程度):95, 98, ME, NT4, 2000, XP, 2003, Vista, 2008, 7, 2008R2
WinVer.nsh 文件中还有更多功能和一些用法示例,该文件可能位于C:\Program Files\NSIS\Include之类的位置,例如:
AtLeastServicePack它检查安装程序是否至少在指定的 Windows 服务包版本上运行。
IsServicePack它检查安装程序是否完全按照指定在 Windows 服务包版本上运行。
AtMostServicePack它检查安装程序是否最多按照指定在 Windows 服务版本包上运行。
IsWin2003R2(没有提供更多细节)
IsStarterEdition(没有提供更多细节)
OSHasMediaCenter(没有提供更多细节)
OSHasTabletSupport(没有提供更多细节)