如何使用NSIS脚本检测32位或64位的窗口?

时间:2012-11-05 09:28:50

标签: nsis

我已经为java项目编写了nsis脚本。我的项目中有批处理文件。我已经为常用的Windows 32位和64位编写了批处理文件。安装完成后,我已经使用 Exec 自动启动了批处理文件在32位windows.Its woks罚款。但同时这在64位不能很好。所以我怀疑在安装之前我应该​​检查windows是32位还是64位版本。请分享你的看法如何检查?

3 个答案:

答案 0 :(得分:59)

对于未来懒惰的googlers - 一个小片段:

包括这个:

!include x64.nsh

如果符合以下条件,请使用此选项:

${If} ${RunningX64}
    # 64 bit code
${Else}
    # 32 bit code
${EndIf}       

答案 1 :(得分:30)

使用x64.nsh标题中的RunningX64宏:

!include LogicLib.nsh
!include x64.nsh

Section
${If} ${RunningX64}
    DetailPrint "64-bit Windows"
${Else}
    DetailPrint "32-bit Windows"
${EndIf}  
SectionEnd

答案 2 :(得分:-1)

这是我大部分时间都在使用的,而不需要x64.nsh

${If} $Bit == 64
     ...64-bit code..
${Else}
     ..32-bit code...
${EndIf}

现在$ Bit持有64或32,可以像这样使用:

StrCmpS $Bit 64 SixtyFour ThirtyTwo

SixtyFour:
    ...
    Goto End
ThirtyTwo:
    ...
End:

或者

StrCmpS

我使用.mapToDouble,因为我相信它更快。大声笑。希望这可以帮助! =)