对于那些感兴趣的人here,有一个相关的问题。我被鼓励分别提出其中一个问题。
所以我有这个[Run]
代码:
Filename: "{cmd}"; Parameters: "/C exit"; Description: "Exit Setup"; \
Flags: nowait postinstall runasoriginaluser unchecked skipifsilent; Check: IsWin64
效果很好。它在安装结束时显示以下窗口:
但问题是退出设置的措辞是用英文硬编码的。现在,我查看了 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
的第三个参数不匹配。
答案 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;