gpt4 book ai didi

delphi - 我无法从 Delphi 中删除代码中的注册表项

转载 作者:行者123 更新时间:2023-12-03 19:11:17 25 4
gpt4 key购买 nike

Win7x64,DelphiXe。
编写了注册控制面板小程序的程序(这里推荐:http://msdn.microsoft.com/en-us/library/bb757044.aspx)。
一切正常,小程序正常注册,显示和启动。

但是在删除注册的注册表键时:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel\NameSpace\{0052D9FC-6764-4D29-A66F-2F3BD9E2BB40}



什么都没有发生:

创造:
...
var reg1:tregistry;key:string;
begin
key:='SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel\NameSpace\ {0052D9FC-6764-4D29-A66F-2F3BD9E2BB40}';
reg1:=tregistry.Create;
reg1.RootKey:=HKEY_LOCAL_MACHINE;
reg1.Access: = KEY_WOW64_64KEY + KEY_ALL_ACCESS;
if reg1.Openkey(key,true)=true then showmessage('ok');
reg1.Closekey;
reg1.free;
end;

删除:
procedure TForm1.Button1Click (Sender: TObject);
var reg1:tregistry; key:string;
begin
reg1: = tregistry.Create;
reg1.RootKey: = HKEY_LOCAL_MACHINE;
reg1.Access: = KEY_WOW64_64KEY + KEY_ALL_ACCESS;
key: ='SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel\NameSpace\{0052D9FC-6764-4D29-A66F-2F3BD9E2BB40}';
if reg1.KeyExists (Key)=true then Showmesage ('Key exists'); // work
if reg1.DeleteKey (Key)=true then Showmesage ('Ok'); // ! not work !
Showmesage (inttostr(getlasterror)); // show "0"
reg1.Free;
end;

错误任何不突出,但关键不离开。该程序是从管理员的会计记录下启动的(+也创建了这个 key )。
通过 Regedit.exe 可以看到一个 key 并且可以将其删除。

什么可以搅拌去除? :(

最佳答案

试试这个:

IF reg1.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel\NameSpace') THEN TRY
reg1.DeleteKey('{0052D9FC-6764-4D29-A66F-2F3BD9E2BB40}')
FINALLY
reg1.CloseKey
END;

还要确保此键下没有子键。如果有,您需要先显式删除这些子键,然后才能删除父键。

关于delphi - 我无法从 Delphi 中删除代码中的注册表项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6481678/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com