var
Reg:TRegistry;
begin
Reg.RootKey:=HKEY_LOCAL_MACHINE;
Reg.OpenKey('*\shell\',true);
reg.DeleteKey('*\shell\'+trim(edit1.Text));
end;
Reg:TRegistry;
begin
Reg.RootKey:=HKEY_LOCAL_MACHINE;
Reg.OpenKey('*\shell\',true);
reg.DeleteKey('*\shell\'+trim(edit1.Text));
end;
try
....................
finally
Reg.CloseKey;
Reg.Free;
end;
procedure TMainFrm.btnOkClick(Sender: TObject);
var
pReg: TRegistry;
begin
pReg:=nil;
try
pReg:=TRegistry.Create(); //<-- 创建
pReg.RootKey:=HKEY_LOCAL_MACHINE;
if pReg.OpenKey(SysKey,false)=true then
begin
pReg.WriteInteger('Port',sePort.Value);
end; pReg.CloseKey;
if pReg.OpenKey(AutoRunKEY,false)=true then
begin
if (pReg.ValueExists('AAA')) then
begin
pReg.DeleteValue('AAA');
end;
end;
finally
pReg.CloseKey;
end;
end;
我想删除hehe
但一直删除不掉呀
下面是DeleteKey的Delphi帮助,供参考
procedure TForm1.Button1Click(Sender: TObject);
var
Reg: TRegistry;
Val:TStringList;
I:Integer;
begin
Reg:=TRegistry.Create;
try
Val:=TStringList.Create;
try
Reg.RootKey:=HKEY_LOCAL_MACHINE; // Section to look for within the registry
if not Reg.OpenKey(Edit1.Text,False) then
ShowMessage('Error opening key')
else
begin
Reg.GetValueNames(Val); for I:=0 to Val.Count-1 do
begin
ShowMessage(Edit1.Text + Chr(13) +
'has an Entry Called '+Val.Strings[I]+Chr(13)+
'With a Value of '+Reg.ReadString(Val.Strings[I]));
end;
if MessageDlg('Ok to delete the key and lose all these values?'
,Mtinformation,[mbYes,mbNo],0)=mryes then
Reg.DeleteKey(Edit1.Text); end;
finally
Val.Free;
end;
finally
Reg.Free;
end;
end;
Reg.OpenKey('SOFTWARE\Classes\*\shell\',true);
var
reg:tregistry;
begin
reg:=tregistry.Create;
reg.rootkey:=HKEY_LOCAL_MACHINE;
reg.openkey('\Software\Classes\*\shell',true);
reg.DeleteValue('delphi run'); //删除注册表项
reg.CloseKey;
reg.Free;
end;
end.
这样不行吗?