如何将应用程序路径位置保存到XML节点中

时间:2012-11-20 09:58:37

标签: xml inno-setup

我有一个问题,我环顾互联网并且没有得到帮助。 这就是问题: - 我想将应用程序路径位置保存在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等]或不同的路径位置主要应用程序,在安装过程中会出错。

请帮忙! 谢谢你们!

1 个答案:

答案 0 :(得分: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'));

端;

你会得到你想要的东西。