var
  Reg:TRegistry;
begin
Reg.RootKey:=HKEY_LOCAL_MACHINE;
Reg.OpenKey('*\shell\',true);
reg.DeleteKey('*\shell\'+trim(edit1.Text));
end;

解决方案 »

  1.   

    有 ‘*\shell\’ 这个键么?
      

  2.   

    Reg := TRegistry.Create;
      try
      ....................
      finally
        Reg.CloseKey;
        Reg.Free;
      end;
      

  3.   


    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;
      

  4.   

    XXMMMX问一下  我想删除这个键HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\hehe
    我想删除hehe
    但一直删除不掉呀
      

  5.   

    Reg.OpenKey('*\shell\',true);  <--你写的OpenKey 路径不对
    下面是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;
      

  6.   


    Reg.OpenKey('SOFTWARE\Classes\*\shell\',true); 
      

  7.   

    procedure TForm1.Button2Click(Sender: TObject); 
    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.
    这样不行吗?