uses Registry;
function RegFile(Endung, Schluessel, Beschreibung,
Programm, Parameter: string; Iconidx: Integer): Boolean;
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
try
with Reg do begin
RootKey := HKEY_CLASSES_ROOT;
OpenKey(Endung, True);
WriteString('', Schluessel);
OpenKey('\' + Schluessel, True);
WriteString('', Beschreibung);
OpenKey('DefaultIcon', True);
WriteString('', Programm + ',' + IntToStr(Iconidx));
OpenKey('\' + Schluessel + '\Shell\Open\Command', True);
WriteString('', '"' + Programm + '" "' + Parameter + '"');
end;
Result := True;
except
Result := False;
end;
Reg.closekey;
Reg.Free;
end;
function UnRegFile(Endung, Schluessel: string): Boolean;
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
try
with Reg do begin
RootKey := HKEY_CLASSES_ROOT;
DeleteKey(Endung);
DeleteKey('\' + Schluessel);
end;
Result := True;
except
Result := False;
end;
Reg.Free;
end;
// Beispielaufruf
procedure DateiRegistrieren;
var
Endung, Schluessel, Beschreibung, Programm, Parameter: string;
Iconidx: integer;
begin
Endung := '.xyz';
Schluessel := 'MyProg';
Beschreibung := 'Test-Datei';
Programm := Application.ExeName;
Parameter := '%1';
Iconidx := 0;
if RegFile(Endung, Schluessel, Beschreibung,
Programm, Parameter, Iconidx) then
showmessage('Erfolgreich registriert');
end;
procedure DateiEntfernen;
begin
if not UnRegFile('.xyz', 'MyProg') then
showmessage('Registrierung entfernen fehlgeschlagen');
end;