根据所选安装类型修改 Inno Setup Run 部分标志

问题描述 投票:0回答:1

我有一个

Run
部分:

[Run]
Filename: "{app}\myapp.exe"; Description: {cm:RunNow}; \
    Flags: postinstall nowait runascurrentuser;  Check: TypeIsCompact;
Filename: "{app}\myapp.exe"; Description: {cm:RunNow}; \
    Flags: postinstall nowait runasoriginaluser; Check: not TypeIsCompact;

还有支票

TypeIsCompact

function TypeIsCompact: Boolean;
begin  
  if SILENT then
    begin
      Result := DONTINSTALLMSSQL;
    end
  else
    begin
      Result := WizardForm.TypesCombo.ItemIndex = 1;
    end;
  log('Type is compact: ' + BoolToStr(Result));
end;

尽管尚未选择类型,但在

Run
部分中调用的检查会返回
True
。这样我就无法使用带有标志
runasoriginaluser
的文件名,并且 myapp.exe 以标志
runascurrentuser
开头。

我需要根据所选类型在有或没有管理员权限的情况下运行 myapp.exe。

有什么直接的方法或者我必须为完成页面编写自定义复选框吗?

inno-setup pascalscript
1个回答
1
投票

您不必创建自己的复选框。但我相信你需要自己实现程序的执行。

有关如何重新实现“完成”页面上复选框的处理的一些示例,请参阅:
在 Inno Setup 的 Run 条目中运行脚本代码(添加注册表项)而不是可执行文件

在您的实施中,根据所选的安装类型,使用

Exec
ExecAsOriginalUser

© www.soinside.com 2019 - 2024. All rights reserved.