在运行条目说明中使用标准的Inno Setup消息

时间:2017-07-08 16:25:01

标签: inno-setup

对于那些感兴趣的人here,有一个相关的问题。我被鼓励分别提出其中一个问题。

所以我有这个[Run]代码:

Filename: "{cmd}"; Parameters: "/C exit"; Description: "Exit Setup";  \
    Flags: nowait postinstall runasoriginaluser unchecked skipifsilent; Check: IsWin64

效果很好。它在安装结束时显示以下窗口:

InnoSetup install complete

但问题是退出设置的措辞是用英文硬编码的。现在,我查看了 default.isl 文件并找到了:

ExitSetupTitle=Exit Setup
ClickFinish=Click Finish to exit Setup.

我不知道我是否应该使用这些消息中的任何一个。使用 ClickFinish 是有道理的,因为这是用户将要做的事情。

但我无法弄清楚如何在run语句中使用该消息。

更新

我已将提供的答案修改为:

function GetClickFinishSetupMessage(Param: string): string;
var
  I: integer;
  S1: string;
  S2: string;
begin

  S1 := SetupMessage(msgClickFinish);
  I := Length(S1);
  S2 := Copy(S1, I-1, 1);
  if(S2 = '.') then
      S1 := Delete(S1, I-1, 1);
  end;

  result := S1;
end;

所以我可以删除最后一段时间。但它不会编译。它表示Delete的第三个参数不匹配。

1 个答案:

答案 0 :(得分:2)

使用SetupMessage support function中的scripted constant

[Run]
Filename: ...; Description: {code:GetClickFinishSetupMessage}
[Code]

function GetClickFinishSetupMessage(Param: string): string;
begin
  Result := SetupMessage(msgClickFinish);

  { Drop trailing dot, if any }
  if Copy(Result, Length(Result), 1) = '.' then
    SetLength(Result, Length(Result) - 1);
end;