【问题标题】:InnoSetup, change the Uninstallable property behavior at runtime?InnoSetup,在运行时更改 Uninstallable 属性行为?
【发布时间】:2015-01-16 10:14:32
【问题描述】:

场景

我创建了一个安装程序,它将安装恶意软件应用程序以用于教育目的,安装程序包含以下两个任务:

[Tasks]
Name: hidden; Description: Hidden mode; GroupDescription: Installation Mode
Name: visible; Description: Visible mode; GroupDescription: Installation Mode

这意味着,为用户执行隐藏安装(隐藏目录和文件并使卸载成为安装程序)或可见安装(普通目录和文件以及 Uninstallable=True)。

问题

我默认设置了Uninstallable=True,但如果用户选择hidden 任务,那么我想避免创建卸载程序。

我怎样才能正确地做到这一点?

【问题讨论】:

    标签: windows installation inno-setup pascal pascalscript


    【解决方案1】:

    您可以使用Uninstallable 指令文档中显示的代码:

    [Setup]
    ...
    Uninstallable=not IsTaskSelected('hidden')
    
    [Tasks]
    Name: hidden; Description: Hidden mode; GroupDescription: Installation Mode
    Name: visible; Description: Visible mode; GroupDescription: Installation Mode
    

    或者,如果您需要用可重用函数编写更复杂的语句,或者访问一些脚本代码元素,您可以编写一个函数,例如:

    [Setup]
    ...
    Uninstallable=IsUninstallable
    
    [Tasks]
    Name: hidden; Description: Hidden mode; GroupDescription: Installation Mode
    Name: visible; Description: Visible mode; GroupDescription: Installation Mode
    
    [Code]
    function IsUninstallable: Boolean;
    begin
      Result := WizardSilent or not IsTaskSelected('hidden');
    end;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-14
      • 2011-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多