2012-11-20 49 views
3

我有一個問題,我環顧了互聯網,並沒有得到幫助。 這就是問題: - 我想將應用程序路徑位置保存在XML節點中。問題在於我不能使用consts名稱作爲目錄,因爲安裝程序會寫入我放置在其中的任何字詞,完全如我所寫。如何將應用程序路徑位置保存到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', '{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等]或不同的路徑位置主應用程序,安裝過程中會出錯。

請幫忙! 從現在開始感謝!

回答

2

對於要存儲的值,您只是爲XML的名稱調用ExpandConstant函數。

更改您的代碼:

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')); 

末;

你會得到你想要的。

+0

謝謝!這是我正在尋找... – Dielo