现在越来越多的应用软件慢慢的仅支持 64 位操作系统,同时也更偏向于 Windows 10 和 11 系统,当我们想要开发 Windows 应用时,那么就需要注意用户的使用平台。而在使用 Inno Setup 打包应用程序时则需要对当前系统的环境进行检测。如果符合当前的 Windows 配置要求则执行安装,否则则提示用户升级系统并中断安装。
以下是为大家整理的示例,请大家灵活使用。
使用 Inno Setup 检测 Windows 10 和 11 64 位环境代码
当使用 Inno Setup 编写一代检测 Windows 10 和 11 x64 位环境的代码时,你可以使用以下脚本:
[Setup] AppName=YourAppName AppVersion=1.0 DefaultDirName={pf}\YourAppName [Code] function IsWin10OrAbove: Boolean; begin Result := (GetWindowsVersion >= $0A00); end; function IsWin11OrAbove: Boolean; begin Result := (GetWindowsVersion >= $0B00); end; function Is64BitWindows: Boolean; begin Result := IsWin64; end; function InitializeSetup: Boolean; begin Result := True; if not (IsWin10OrAbove or IsWin11OrAbove) or not Is64BitWindows then begin MsgBox('当前系统不是 Windows 10 或 11 x64 位环境,无法继续安装。', mbError, MB_OK); Result := False; end; end;
代码解释:
GetWindowsVersion >= $0A00 是一个条件判断表达式,用于判断 Windows 版本是否大于等于 Windows 10。
在这个表达式中,GetWindowsVersion 是一个函数或变量,表示当前系统的 Windows 版本号。而 $0A00 是一个十六进制数,代表 Windows 10 对应的版本号。
Windows 版本号是由两部分组成的,高位表示主要版本号,低位表示次要版本号。对于 Windows 10,主要版本号为 10,所以用十六进制表示就是 0x0A。而次要版本号为 0,可以用两个 0 补齐。
因此,$0A00 表示 Windows 10 的版本号。
通过将 GetWindowsVersion 与 $0A00 进行比较,判断当前系统的 Windows 版本是否大于等于 Windows 10。如果条件成立,说明当前系统是 Windows 10 或更高版本;如果条件不成立,说明当前系统的版本低于 Windows 10。
Windows 11 检测也同以上。
其它事项
请将以上脚本保存为 .iss 文件,并使用 Inno Setup Compiler 进行编译。这段代码将在初始化安装程序时检查当前系统是否为 Windows 10 或 11 的 x64 位环境,如果不是,则会弹出错误提示框并退出安装。
注意:在使用此代码之前,请确保已经正确安装了 Inno Setup 工具和编译器,并将其添加到系统环境变量中。