Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Library: Dateien / Laufwerke (https://www.delphipraxis.net/41-library-dateien-laufwerke/)
-   -   Delphi Dateiendung registrieren (https://www.delphipraxis.net/21230-dateiendung-registrieren.html)

Matze 29. Apr 2004 16:24


Dateiendung registrieren
 
Hier habe ich diesen Code entdeckt, er stammt jedoch ursprünglich von www.delphi-source.de.


Delphi-Quellcode:
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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:41 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz