加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows-7 – 检查InnoSetup配置文件的[Run]段中的Windows版本

发布时间:2020-12-14 04:15:45 所属栏目:Windows 来源:网络整理
导读:我必须在InnoSetup的安装过程中安装驱动程序.为此我有32位/ 64位的两个.msi安装文件.现在在Win7中,这个驱动程序已经包含在内了,所以我不需要再次安装它.到目前为止,我这样做了: [Tasks] Name: "install_usb"; Description: "Install USB driver"; GroupDesc
我必须在InnoSetup的安装过程中安装驱动程序.为此我有32位/ 64位的两个.msi安装文件.现在在Win7中,这个驱动程序已经包含在内了,所以我不需要再次安装它.到目前为止,我这样做了:
[Tasks]                
Name: "install_usb"; Description: "Install USB driver"; GroupDescription: "Drivers:";

[Files]
Source: "xydriver*"; DestDir: "{tmp}"

[Run]    
Filename: "msiexec.exe"; Parameters: "/i ""{tmp}driver_32bit.msi"""; StatusMsg: "Installing 32bit USB driver"; Check: not IsWin64(); Tasks: install_usb; Flags: skipifsilent
Filename: "msiexec.exe"; Parameters: "/i ""{tmp}driver_64bit.msi"""; StatusMsg: "Installing 64bit USB driver"; Check: IsWin64(); Tasks: install_usb; Flags: skipifsilent

因此,用户可以选择是否要安装驱动程序.如果他选择这样做,那么正确的驱动程序就会运行.这很好用.现在,如果> = Win7正在运行,我想选择不安装驱动程序.我读到了关于OnlyBelowVersion:6.1但我似乎无法在[Run]部分做这样的事情:

[Run]    
... Check: IsWin64() and OnlyBelowVersion:6.1; ...

如何在[Run]部分中使用OnlyBelowVersion(或类似的东西)?

另外,我想确保.msi以正确的模式运行(64位系统的64位模式).因为我认为,现在情况并非如此.有可能强制执行吗?我发现了ArchitecturesInstallIn64BitMode = x64,我在哪里放这个?

OnlyBelowVersion参数不能在 Check语句中使用,而是作为单独的参数.
[Run]    
Filename: "msiexec.exe"; Parameters: "/i ""{tmp}driver_32bit.msi"""; OnlyBelowVersion: 6.1; StatusMsg: "Installing 32bit USB driver"; Check: not IsWin64(); Tasks: install_usb; Flags: skipifsilent
Filename: "msiexec.exe"; Parameters: "/i ""{tmp}driver_64bit.msi"""; OnlyBelowVersion: 6.1; StatusMsg: "Installing 64bit USB driver"; Check: IsWin64(); Tasks: install_usb; Flags: skipifsilent

对于第二个问题,IsWin64函数在所有64位版本的Windows上都返回True,这就是你的正确答案.从参考:

This function will always return True on an x64 edition of Windows.

要以64位模式运行InnoSetup安装,您已正确提到,您需要至少指定ArchitecturesInstallIn64BitMode指令.如果您指定此指令至少包含一个可用值,则您的设置将在具有您指定的处理器体系结构的计算机上以64位模式运行,如果在具有x86处理器的计算机上运行设置,则以32位模式运行.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读