Thema: Delphi Dateiendung registrieren

Einzelnen Beitrag anzeigen

Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 

Dateiendung registrieren

  Alt 29. Apr 2004, 16:24
Hier habe ich diesen Code entdeckt, er stammt jedoch ursprünglich von www.delphi-source.de.


uses Registry; Dateiendung registrieren:
Delphi-Quellcode:
function InstallExt(Extension, ExtDescription, FileDescription,
                    OpenWith, ParamString: String; IconIndex: Integer): Boolean;
var
  Reg: TRegistry;
begin
  Reg := TRegistry.Create;
  try
    try
      with Reg do
      begin
        RootKey := HKEY_CLASSES_ROOT;
        OpenKey(Extension, True);
        WriteString('', ExtDescription);
        CloseKey;
        OpenKey('\' + ExtDescription, True);
        WriteString('', FileDescription);
        CloseKey;
        OpenKey('DefaultIcon', True);
        WriteString('', OpenWith + ','+IntToStr(IconIndex));
        CloseKey;
        OpenKey('\' + ExtDescription + '\Shell\Open\Command', True);
        WriteString('', '"' + OpenWith + '" "' + ParamString + '"');
        CloseKey;
      end;
      Result := True;
    except
      Result := False;
    end;
  finally
    Reg.Free;
  end;
end;
Dateiendung aus der Registry entfernen:
Delphi-Quellcode:
function UnInstallExt(Extension, ExtDescription: String): Boolean;
var
  Reg: TRegistry;
begin
  Reg := TRegistry.Create;
  try
    try
      with Reg do
      begin
        RootKey := HKEY_CLASSES_ROOT;
        DeleteKey(Extension);
        DeleteKey('\' + ExtDescription);
      end;
      Result := True;
    except
      Result := False;
    end;
  finally
    Reg.Free;
  end;
end;

Aufruf:
Delphi-Quellcode:
//Dateiendung registrieren
  InstallExt('.abc', 'ABC-Datei', 'Tolles Programm', Application.ExeName, '%1',0);

//Dateiendung entfernen
  UnInstallExt('.abc', 'ABC-Datei');

InstallExt sollte nur einmal aufgerufen werden (in einem Installer zum Beispiel).
UnInstallExt dementsprechend bei einem Uninstaller.
  Mit Zitat antworten Zitat