You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在NSIS安装程序中检测ARM64系统及不支持SHA256的Windows系统?

NSIS 3.x 系统检测问题解答

ARM64系统检测

NSIS 3.04及后续版本(包括你使用的3.10)已经内置ARM64检测能力,无需自行编写DLL。可以通过两种方式实现:

  • 直接调用系统API获取原生架构:
!include LogicLib.nsh

Function CheckARM64
    System::Call 'kernel32::GetNativeSystemInfo(ptr)'
    Pop $0
    IntOp $0 $0 & 0xFF
    ; IMAGE_FILE_MACHINE_ARM64 对应值为 0xAA64
    ${If} $0 == 0xAA64
        ; 此处添加ARM64系统的处理逻辑(如退出或分支执行)
    ${EndIf}
FunctionEnd
  • 使用NSIS内置的${GetRunningArch}宏,返回值会包含ARM64标识。

不支持SHA256的Windows系统检测

SHA256支持从Windows Vista/Server 2008开始提供,Windows XP及更早版本不支持。直接通过NSIS内置的版本检测宏即可判断:

!include WinVer.nsh

Function CheckSHA256Support
    ${If} ${IsWinXP}
        MessageBox MB_OK "当前系统不支持SHA256,安装程序将退出"
        Quit
    ${Else}
        ; 系统支持SHA256,继续执行安装流程
    ${EndIf}
FunctionEnd

结论

不需要自行编写DLL,NSIS本身通过内置宏和系统API调用就能实现这两项检测功能。3.04版本针对Windows 10和ARM64的优化已整合到这些基础能力中,无需额外插件。

内容的提问来源于stack exchange,提问作者tux Neoh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 20:12:05