[英]How to detect windows 32bit or 64 bit using NSIS script?
我已經為java項目編寫了nsis腳本。我的項目中有批處理文件。我已經為常用的Windows 32位和64位編寫了批處理文件。安裝完成后,我已經使用Exec命令自動啟動了批處理文件。它在32位windows中運行得很好。但是同時這在64位中運行不佳。所以我懷疑在安裝之前我應該檢查一下Windows是32位還是64位版本。請分享您的看法如何檢查?
對於未來懶惰的googlers - 一個小片段:
包括這個:
!include x64.nsh
並使用此如果:
${If} ${RunningX64}
# 64 bit code
${Else}
# 32 bit code
${EndIf}
在x64.nsh標頭中使用RunningX64宏:
!include LogicLib.nsh
!include x64.nsh
Section
${If} ${RunningX64}
DetailPrint "64-bit Windows"
${Else}
DetailPrint "32-bit Windows"
${EndIf}
SectionEnd
這是我大部分時間都使用的,而不需要x64.nsh
Var Bit
System::Call "kernel32::GetCurrentProcess()i.s"
System::Call "kernel32::IsWow64Process(is,*i.r0)"
StrCmpS $0 0 +3
StrCpy $Bit 64
Goto +2
StrCpy $Bit 32
現在$ Bit持有64或32,可以像這樣使用:
${If} $Bit == 64
...64-bit code..
${Else}
..32-bit code...
${EndIf}
要么
StrCmpS $Bit 64 SixtyFour ThirtyTwo
SixtyFour:
...
Goto End
ThirtyTwo:
...
End:
我使用StrCmpS
因為我相信這是一個更快的頭發。 大聲笑。 希望這可以幫助! =)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.