3

我有一个问题,我浏览了互联网,但没有得到帮助。这是问题所在: - 我想将应用程序路径位置保存在 XML 节点中。问题是我不能对目录使用 consts 名称,因为安装程序会写下我放在那里的任何单词,就像我写它的方式一样。

 function NextButtonClick2(CurPageID: Integer): Boolean;
   begin
    Result := True;
    SaveValueToXML(ExpandConstant('{pf}\XXX\Config.xml'), '//@param', PEdit.Text);
    SaveValueToXML(ExpandConstant('{pf}\XXX\Config.xml'), '//@path', '{app}\XXX\Aplication.exe');
   end;

这是我得到的结果

<?xml version="1.0" encoding="UTF-8"?>
-<games> <game priority="0" display="1" param="test" path="{app}\Aplication.exe" id="1036"/> </games>

这是我期望的结果:

<?xml version="1.0" encoding="UTF-8"?>
-<games> <game priority="0" display="1" param="test" path="C:\Program Files (x86)\XXX\Aplication.exe" id="1036"/> </games>

位置是正确的......但前提是我手动编写它。这是一个问题,安装程序会以自动方式从 XML 编辑路径节点......然后,如果用户有不同的硬盘驱动器号 [C、D、F、H 等] 或不同的路径位置主应用程序,在安装过程中会出错。

请帮忙!从现在开始谢谢!

4

1 回答 1

2

您没有为要存储的值调用 ExpandConstant 函数,只是为 XML 的名称。

将您的代码更改为:

function NextButtonClick2(CurPageID: Integer): Boolean;
begin
  Result := True;
  SaveValueToXML(ExpandConstant('{pf}\XXX\Config.xml'), '//@param', PEdit.Text);
  SaveValueToXML(ExpandConstant('{pf}\XXX\Config.xml'), '//@path',
    ExpandConstant('{app}\XXX\Aplication.exe'));

结尾;

你会得到你想要的。

于 2012-11-20T16:27:53.720 回答