2013-08-16 81 views
1

我必須做出Inno Setup的腳本編寫與推進{應用}路徑斜槓,而不是反斜槓Inno Setup的正斜槓,而不是反斜槓

[Registry] 
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType:string; ValueName:"APP_HOME"; ValueData:"{app}"; Flags: preservestringtype 

如何獲得與{應用}值在註冊表中正斜槓(inno默認情況下用反斜槓寫)?

回答

2

您必須爲{code:}腳本常量創建自定義函數,例如,這樣:

[Setup] 
AppName=My Program 
AppVersion=1.5 
DefaultDirName={pf}\My Program 

[Registry] 
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: string; ValueName: "APP_HOME"; ValueData: {code:GetRegistryData}; Flags: preservestringtype 

[Code] 
function GetRegistryData(Value: string): string; 
begin 
    Result := ExpandConstant('{app}'); 
    StringChangeEx(Result, '\', '/', True); 
end; 
+0

我在手冊中沒有找到{code:*}語法文檔,非常感謝。 – Tobia

+0

不客氣!是的,它隱藏得很好:-) – TLama