64位Win7中Delphi2010下訪問注冊表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run無效的解決辦法最近做一個東東,需要讀取HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run下的所有鍵值,結(jié)果卻不行,代碼如下 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,權(quán)限不足! end; end;
后來網(wǎng)上反復(fù)查找,很多網(wǎng)友說要提升UAC權(quán)限,還給出了一個.Res文件,結(jié)果用上這個文件還是不行,最后實在沒轍,瞎看了一下,發(fā)現(xiàn)TRegistry的構(gòu)造函數(shù)還有參數(shù)呢, 試一下: Reg := TRegistry.Create(KEY_WRITE OR KEY_READ or KEY_WOW64_64KEY); 測試,OK! 所有問題解決!! |
|