gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 10:21:50 26 4
gpt4 key购买 nike

我必须在 InnoSetup 中的安装过程中安装驱动程序。为此,我有两个 32 位/64 位的 .msi 安装文件。现在在Win7中,已经包含了这个驱动,所以我不需要再次安装。到目前为止,我这样做了:

[Tasks]                
Name: "install_usb"; Description: "Install USB driver"; GroupDescription: "Drivers:";

[Files]
Source: "xy\driver\*"; 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 位模式运行.

关于windows-7 - 检查 InnoSetup 配置文件的 [Run] 段中的 Windows 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13156373/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com