我正在尝试阅读Windows注册表,以便我的应用更新可以检索以前保存的安装路径作为其DefaultDirName。
我读过一些我应该调用函数的地方,例如:
DefaultDirName="{code:GetPath}"
问题是我需要定义一个默认路径,以防函数找不到前一个。例如,'C:\ MyPath'。所以我这样做了:
[Code]
function GetPath(Value: String): String;
var
OrigPath: string;
begin
Result := '{sd}\MyPath';
if RegQueryStringValue(HKCU, 'Software\MyApp', 'PathExec', OrigPath) then
Result := OrigPath;
end;
这不起作用。当我运行安装程序时,在目标目录对话框中,字面意思是“C:\ PathOfMySetup \ {sd} \ MyPath”,而不是“C:\ MyPath”。
我应该在第一个“Result:=”行写一下,以便在系统驱动器上创建“MyPath”?
感谢。
答案 0 :(得分:0)
Pascal脚本中的常量并没有神奇地扩展。您必须使用ExpandConstant
function显式扩展它们:
Result := ExpandConstant('{sd}\MyPath');