uses registry, ShlObj;procedure TForm1.RegistryFile
var
  reg: TRegistry;
begin
  reg := TRegistry.Create;
  try
    reg.RootKey := HKEY_CLASSES_ROOT;
    reg.OpenKey('.xyz', true);
    reg.WriteString('', 'xyzfile');
    reg.CloseKey;
    reg.OpenKey('xyzfile\shell\open\command', true);
    reg.WriteString('',Application.ExeName + ' %1');
    reg.Closekey;
    SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST + SHCNF_FLUSH, nil, nil);
  finally
    reg.Free;
  end;
end;