根据用户输入

时间:2017-09-20 17:16:43

标签: inno-setup

我希望我的安装程序询问用户如何在"添加\删除程序"中命名程序。我想为此添加自定义向导页面。自定义向导页面没有问题,但我不知道如何在向导显示后更改AppVerName。 我已经尝试过了:

[Setup]
AppVerName={code:GetUserAppName}
DefaultDirName={pf}\{code:GetUserAppName}
DefaultGroupName={code:GetUserAppName}

[Code]
var
  AppUserName: String;

function GetUserAppName(param: String): String;
begin
  Result := AppUserName;
end;

但在我有机会向用户询问程序名称之前,函数GetUserAppName被过早调用。显示向导后或安装前不会调用此函数。

是否有可能从代码中更改AppVerName,例如在NextButtonClick事件中?

P.S。已有类似的问题:Changing AppID and AppName based on user input,但接受的回答是完全错误的,因为他的作者提出了错误的问题:

  

我找到了自己问题的答案,然后意识到我可能没有   正确地提问。

1 个答案:

答案 0 :(得分:1)

UninstallDisplayName directive,只有在您已经知道名称时才会在实际安装期间解析。所以你可以在这里使用GetUserAppName

[Setup]
UninstallDisplayName={code:GetUserAppName}

另见Inno Setup Change AppName based on component(s) selected