64位Win7中Delphi2010下訪問注冊表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run無效的解決辦法


最近做一個東東,需要讀取HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run下的所有鍵值,結果卻不行,代碼如下

var Reg: TRegistry;

begin

  Reg := TRegistry.Create;

  Reg.RootKey = HKEY_LOCAL_MACHINE;

  if Reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',false) then begin

    Caption := Reg.ReadString('APoint');

   // Reg.GetValues(....) //失敗!!! 

    //這里就讀不到了,GetLastError返回5,權限不足!

  end;

end;

 

后來網上反復查找,很多網友說要提升UAC權限,還給出了一個.Res文件,結果用上這個文件還是不行,最后實在沒轍,瞎看了一下,發現TRegistry的構造函數還有參數呢, 試一下:

  Reg := TRegistry.Create(KEY_WRITE OR KEY_READ or KEY_WOW64_64KEY);

測試,OK!

所有問題解決!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM