使用NSIS检测32位或64位的窗口

时间:2014-08-06 11:52:30

标签: nsis

我正在尝试确定哪个架构具有操作系统。我正在使用此代码:

!include x64.nsh

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

但是我总是输入#32位代码,尽管我在W7 x64操作系统上执行它。

1 个答案:

答案 0 :(得分:1)

尝试运行:

DetailPrint "NSIS=${NSIS_VERSION}"
System::Call 'kernel32::GetCurrentProcess()i.r0'
DetailPrint "GetCurrentProcess=$0"
System::Call 'kernel32::IsWow64Process(ir0,*i.r1)i.r2?e'
pop $3
DetailPrint "IsWow64Process: ret=$2 gle=$3 result=$1"

在我的Win8 x64操作系统上,这给了我:

NSIS=v2.46
GetCurrentProcess=-1 
IsWow64Process: ret=1 gle=80 result=1