在Inno Setup脚本的[Run]
部分下面,我有以下内容......
[Run]
Filename: "{sys}\cscript.exe"; \
Parameters: """{tmp}\myScript.vbs"" ""{code:GetStringValue}"" {#CONST_PORT}"; \
Description: "Setting the port to {#CONST_PORT}."; \
StatusMsg: "Setting the port to {#CONST_PORT}."; \
Tasks: SetPorts; \
Check: SetPort({#CONST_PORT}); \
Flags: runhidden;
然后在[Code]
部分,我有以下内容......
[Code]
function GetStringValue: String;
var
version: Integer;
begin
version := 20;
result := 'This is a test showing the int ' + IntToStr(version);
end;
该对象的函数将返回[Run]
部分中的字符串。目前我可以告诉您在{code:}
部分使用[Run]
是否需要调用仅返回Boolean
值的函数。有没有解决的办法?我需要能够在[Run]
部分中将动态字符串传递给我的VBScript。
答案 0 :(得分:1)
目前我可以告诉您在
{code:}
部分使用[Run]
是否需要调用仅返回Boolean
值的函数。< / p>
那不是真的。
引用Scripted constants上的文档:
被调用函数必须有1个名为
Param
的String参数,必须返回String或布尔值,具体取决于使用常量的位置。
通常,在code:
参数中使用脚本化(Check
)常量时,它必须返回一个布尔值。在其他地方(据我所知),它必须返回一个字符串。
所以你的脚本是正确的,除了你缺少参数(它是强制性的,即使你实际上不需要/使用它):
[Code]
function GetStringValue(Param: string): string;
...