// Wenn man einen eigenen Datei-Typ im System registrieren will, damit beim
// Doppelklick im Explorer auf eine Datei dieses Types ein spezielles Programm
// startet, könnte man das so machen:

// Getestet mit D4 unter XP

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; 



Zugriffe seit 6.9.2001 auf Delphi-Ecke