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