我正在为我的应用程序编写一个简单的 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范围文档说:
除了单个名称之外,您还可以使用布尔表达式。看组件和任务参数有关布尔表达式的示例。
组件和任务参数文档说:
除了空格分隔的列表之外,您还可以使用布尔表达式作为组件和任务参数。支持的运营商包括not
, and
, and or
. ...
因此,添加一个辅助功能,例如IsClientMode
:
function IsClientMode: Boolean;
begin
Result := ClientRadioButton.Checked;
end;
并将其与您现有的相结合IsWin64
使用条件and
布尔运算符:
[Registry]
Check: IsWin64 and IsClientMode; ...
Check: (not IsWin64) and IsClientMode; ...
或者,特别是当表达式变得太复杂或频繁使用时,您可以将其分解为单独的函数:
function IsClientModeOnWin64: Boolean;
begin
Result := IsWin64 and IsClientMode;
end;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)