如何在NSIS中选择基于操作系统的directoy安装?

如何在NSIS中选择基于操作系统的directoy安装?,nsis,Nsis,我已使用nsis脚本创建了EXE。目前,我已将安装目录设置为此路径 InstallDir“$PROGRAMFILES\myapp 我在windows xp、windows 7 32位和win7 64位中运行了exe文件。 安装目录可能会更改xp和Windows 7 如何确定操作系统是Windows7还是WindowsXP 如何选择基于操作系统的安装目录?基于操作系统选择目标通常不是您应该做的事情,但是如果您确实想这样做,您可以使用WinVer.nsh: !include WinVer.nsh

我已使用nsis脚本创建了EXE。目前,我已将安装目录设置为此路径

InstallDir“$PROGRAMFILES\myapp

我在windows xp、windows 7 32位和win7 64位中运行了exe文件。 安装目录可能会更改xp和Windows 7

如何确定操作系统是Windows7还是WindowsXP


如何选择基于操作系统的安装目录?

基于操作系统选择目标通常不是您应该做的事情,但是如果您确实想这样做,您可以使用
WinVer.nsh

!include WinVer.nsh

Function .onInit
${If} ${AtLeastWinVista}
  StrCpy $InstDir "c:\VistaAndLater"
${Else}
  StrCpy $InstDir "c:\Win95To2003"
${EndIf} 
FunctionEnd

如果要基于x86与AMD64进行更改,请使用
x64.nsh

@Anders.Thank。如果运行win7 64位,则需要pgm文件(86)默认情况下。如果运行win 7 32位,则默认情况下需要pgm文件。如何管理此操作?仅使用$ProgramFiles即可。还有$ProgramFiles32和$ProgramFiles64…$ProgramFiles应同时管理32和64版本?它如何找到哪个版本(32或64)操作系统运行情况如何?@ILLA如果您选择$ProgramFiles,nsis会自动选择32位机器上的程序文件和64位机器上的程序文件(86)(假设您使用32位nsis安装程序-最常见)。