unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,Registry, StdCtrls;type
  TForm1 = class(TForm)
    Bit_cancel: TButton;
    A_Check: TCheckBox;
    Bit_hide: TButton;
    procedure Bit_hideClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Bit_hideClick(Sender: TObject);
var
  reg:TRegistry;
begin
  reg:=TRegistry.Create;
  with reg do
  begin
    rootkey:=HKEY_CLASSES_ROOT;
    if openkey('\CLSID\{21EC2020-3AEA-1069-A2DD-08002B30309D}\InProcServer32',true) then
      begin
        WriteString('默认','shell32.dll-');//问题在这里,修改默认时,锁定控制面板,但是多加一个默认项..不修改原来的..
      end;
    reg.CloseKey;
    reg.Free;
  end;
end;procedure TForm1.FormCreate(Sender: TObject);
var
  reg:TRegistry;
begin
  reg:=TRegistry.Create;
  with reg do
  begin
    rootkey:=HKEY_CLASSES_ROOT;
    if openkey('\CLSID\{21EC2020-3AEA-1069-A2DD-08002B30309D}\InProcServer32',true) and ValueExists('默认') //这里是可以判断到默认项的哦....
      begin
        if readString('默认')='shell32.dll-' then
          A_check.Checked:=true
        else
          A_check.Checked:=false;
      end;
    reg.CloseKey;
    reg.Free;
  end;
end;end.