我正在为我的应用程序编写一个简单的Inno安装脚本。
我做了我想要的所有东西,但是我阻止了某些事情。

我的应用程序有两种模式,用户在安装开始时选择计算机和客户端。如果选择了客户端模式,则应用程序必须从Windows启动。
此外,我的应用程序可以同时安装在Windows版本(32位和64位)上,因此注册表项的路径不同。

为了使其从Windows开始,我在Inno安装脚本的末尾添加了此代码:

[Registry]
Check: IsWin64; Root: HKCU; Subkey: "Software\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; Permissions: users-full; ValueName: "MyApp"; ValueData: "{app}\AutoexecX86.cmd";

Check: Not IsWin64; Root: HKCU; Subkey: "Software\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; Permissions: users-full; ValueName: "MyApp"; ValueData: "{app}\Autoexec.cmd";

如何添加仅以“选择客户端模式”为条件启动我的应用程序的条件。 (ClientRadioButton.Checked)

最佳答案

Check parameter文档说:

除了单个名称,您还可以使用布尔表达式。有关布尔表达式的示例,请参见Components and Tasks parameters

Components and Tasks parameters文档说:

除了用空格分隔的列表之外,您还可以使用布尔表达式作为“组件”和“任务”参数。受支持的运算符包括notandor。 ...


因此,添加一个辅助功能,例如IsClientMode:

function IsClientMode: Boolean;
begin
  Result := ClientRadioButton.Checked;
end;

并使用IsWin64布尔运算符将其与您现有的and条件结合起来:
[Registry]
Check: IsWin64 and IsClientMode; ...
Check: (not IsWin64) and IsClientMode; ...

关于inno-setup - Inno设置和Check中的两个条件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49775810/

10-13 07:53