我想讀取Windows註冊表,所以我的應用更新可以檢索先前保存的instalation路徑作爲它的DefaultDirName。Inno Setup - 定義裏面的默認路徑[code]
我讀的地方,我要調用一個函數,如:
DefaultDirName="{code:GetPath}"
的問題是,我需要定義一個默認路徑,在情況下,函數沒有找到以前的一個。例如,'C:\ MyPath'。所以我這樣做:
[Code]
function GetPath(Value: String): String;
var
OrigPath: string;
begin
Result := '{sd}\MyPath';
if RegQueryStringValue(HKCU, 'Software\MyApp', 'PathExec', OrigPath) then
Result := OrigPath;
end;
這是行不通的。當我運行安裝程序時,在目標目錄對話框中,我逐字地獲得了「C:\ PathOfMySetup \ {sd} \ MyPath」,而不是「C:\ MyPath」。
爲了在系統驅動器上創建「MyPath」,我應該在第一個「Result:=」行寫什麼?
謝謝。
哪有爲您的應用'HKCU'註冊表項,如果你只安裝應用程序? –
是不是第一個結果的目的,作爲默認?如果RegQueryStringValue未能找到該鍵,該函數將返回我的C:\ MyPath來填充目錄對話框,對吧? – mehrlich
但是'DefaultDirName'是新安裝的默認安裝路徑。重新安裝/升級時,不使用該值(默認情況下)。所以你的代碼實際上對我沒有意義。你會用簡單的'DefaultDirName = {sd} \ MyPath'得到相同的行爲。 –