2013-11-21 63 views
3

我想基於註冊表鍵的存在,顯示組件:Inno Setup的:RegValueExists沒有返回true,試圖檢查註冊表項

[Components] 
Name: "MyProgram"; Description: "MyProgram"; Check: RegistryCheck 

這是相應的功能:

function RegistryCheck: Boolean; 
    begin 
    Result := RegValueExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\Bricsys', 'RegisteredOwner')  
    end; 

我不知道什麼是錯誤,必須檢查的已安裝程序是x64,在x64機器上運行IS。

重點:

Rootkey:HKEY_LOCAL_MACHINE
名稱:RegisteredOwner
類型:REG_SZ
數據:用戶

+2

什麼是你在觀察這個操作系統,並且是32位還是64位?你使用哪種模式,32位或64位?在哪個節點中存儲該註冊表值,在32位還是64位?你能編輯你的問題並在那裏添加這些信息嗎? – TLama

+1

好的,編輯沒有太多的說法,但假設你在64位操作系統上以32位模式運行安裝程序,並且要檢查該值是否存在於64位註冊表節點中。如果這一切都是真的,只需將'HKEY_LOCAL_MACHINE'(將映射到提及的設置到一個32位註冊表視圖)的根密鑰更改爲'HKLM64',然後您將從64位註冊表視圖中讀取。 – TLama

+0

謝謝!這解決了它! :) – lecalmi

回答

1

正如lexalmi說,如果你要安裝在64位的操作系統,你可以看錯了RootKey

嘗試使用替代以下...

RegValueExists(HKLM64, 'SOFTWARE\Bricsys', 'RegisteredOwner') 
相關問題