unit URegExt;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    BReg: TButton;
    Memo1: TMemo;
    Label1: TLabel;
    BUnReg: TButton;
    procedure BRegClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure BUnRegClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
uses registry;

procedure TForm1.BRegClick(Sender: TObject);
var reg:TRegistry;
begin
 reg := TRegistry.Create;
 reg.RootKey := HKEY_CLASSES_ROOT;
// создается ключ ".my"
 reg.OpenKey('.my',true);
// создается параметр со значением "myfile"
 reg.WriteString('', 'myfile');
 reg.CloseKey;
// создается ключ "myfile\DefaultIcon"
 reg.OpenKey('myfile\DefaultIcon',true);
// заносится значение параметра "имя приложения, 0" - пиктограмма
 reg.WriteString('', ParamStr(0) + ', 0');
 reg.CloseKey;
// создается ключ "myfile\shell\open\command"
 reg.OpenKey('myfile\shell\open\command', true);
// создается параметр со значением "имя файла %1"
 reg.WriteString('', ParamStr(0) + ' "%1"');
 reg.CloseKey;
 reg.Free;
end;

procedure TForm1.BUnRegClick(Sender: TObject);
var reg:TRegistry;
begin
 reg := TRegistry.Create;
 reg.RootKey := HKEY_CLASSES_ROOT;
// удаление ключей ".my" и "myfile"
 reg.DeleteKey('.my');
 reg.DeleteKey('myfile');
 reg.Free;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
if ParamCount > 0
 then begin
  Memo1.Lines.LoadfromFile(ParamStr(1));
  Label1.Caption := 'Файл "' + ParamStr(1) + '"';
 end;
end;

end.
