3

我用谷歌搜索了很多,但没有找到关于我的问题的答案。

如何正确地将参数传递给这样的函数:getPath('myParam')?

我有这样的代码:

[Files]
Source: "AppName\*"; DestDir: "{code:getPath('myParam')}";

[Code]
function getPath(Param: String):String;
  var  objRegExp: String;
      path: Variant;
begin
  path := ExpandConstant('{userappdata}') +'\Adobe\' + Param + '\.+';
  objRegExp := CreateOleObject('VBScript.RegExp');
  objRegExp.Pattern := '(.+(\\Version )?( CS)?\d.+)';
   if objRegExp.Test(path) then
      begin
         objRegExpMatches := objRegExp.Execute(path);
         Result := objRegExpMatches.Item[0].Value;
      end;
end
4

1 回答 1

3

如 中所示the reference,脚本常量的原型如下所示:

{code:FunctionName|Param}

因此,您需要|在函数名称后添加字符,并从脚本常量函数调用中删除带单引号的括号。在伪代码中,它可能如下所示:

[Files]
Source: "AppName\*"; DestDir: "{code:GetPath|Your input string value}";

[Code]
function GetPath(Param: string): string;
begin
  MsgBox(Param, mbInformation, MB_OK);
end;
于 2013-05-21T07:54:54.270 回答