我使用NSIS创建了一个简单的安装程序。我希望安装程序应该检测客户端正在使用的操作系统。如果客户端使用的是32位操作系统,则应将所有文件复制到Program Files(32位)文件夹,否则如果他/她使用64 -bit操作系统,所有文件都应该复制到64位。任何人都可以帮我解决这个问题..
由于
答案 0 :(得分:2)
与上述相同(不要忘记包含LogicLib.nsh 和 x64.nsh)
Function .onInit
${If} ${RunningX64}
StrCpy $INSTDIR "$PROGRAMFILES64\myProduct"
${Else}
StrCpy $INSTDIR "$PROGRAMFILES\myProduct" ; $PROGRAMFILES32 also works
${EndIf}
FunctionEnd
或者,您也可以设置注册表视图(请参阅SetRegView)
答案 1 :(得分:1)
以下代码将完成任务。
!include "x64.nsh"
.
.
.
.
var copyDir
section ""
${If} ${RunningX64}
strcpy $copyDir "C:\\Program Files(x64)\\Foo"
${else}
strcpy $copyDir "C:\\Program Files\\Foo"
sectionend
虽然它只是检测Program Files目录,但我认为$ProgramFiles
会根据操作系统位自动检测默认的Program Files目录。