Function 在Unicode Inno设置中,是否可以调用函数(代码)并在;“运行”部分;?

Function 在Unicode Inno设置中,是否可以调用函数(代码)并在;“运行”部分;?,function,inno-setup,Function,Inno Setup,在Inno安装脚本的[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}.

在Inno安装脚本的
[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]
部分我有以下内容

[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;
[代码]
函数GetStringValue:String;
变量
版本:整数;
开始
版本:=20;
结果:='这是一个显示int'+IntToStr(版本)的测试;
结束;
该对象的函数将在
[Run]
部分返回字符串。目前,如果在
[Run]
部分使用
{code:}
,我可以告诉您需要调用一个只返回
布尔值的函数。有办法解决这个问题吗?我需要能够在
[Run]
部分中获取一个动态字符串以传递给我的VBScript

目前,如果在
[Run]
部分使用
{code:}
,我可以告诉您需要调用一个只返回
布尔值的函数

那不是真的

引用以下文件:

被调用函数必须有一个名为
Param
的字符串参数,必须根据常量的使用位置返回字符串或布尔值

通常,在
Check
参数中使用脚本(
code:
)常量时,它必须返回布尔值。在其他任何地方(据我所知),它都必须返回字符串


因此,您的脚本是正确的,只是缺少参数(这是必需的,即使您实际上不需要/使用它):

[代码]
函数GetStringValue(参数:string):string;
...

要使用
[Run]
部分中的函数,请使用类似
{code:GetStringValue | null}
。无需使用
|null
。只需使用
{code:GetStringValue}
-请参阅.Ahh ok,很高兴知道。我在读你的答案,因为那也是“强制性”部分的一部分