Tech-Ecke / Delphi Inhalt / Dateitypverknüpfung auslesen

 

     Dateitypverknüpfung auslesen

 

   Einfacher Aufruf mit mehreren Instanzen

  function GetExecutable(const Ext: string): string;
var reg: TRegistry;
   s: string;
begin
   s:='';
   reg:=TRegistry.Create;
   try
      reg.RootKey:=HKEY_CLASSES_ROOT;
      if reg.OpenKeyReadOnly('.'+ext+'\shell\open\command') then
         begin
            s:=reg.ReadString('');
            reg.CloseKey;
         end
   else
      begin
         if reg.OpenKeyReadOnly('.'+ext) then
            begin
               s:=reg.ReadString('');
               reg.CloseKey;
               if s<>'' then
                  begin
                     if reg.OpenKeyReadOnly(s+'\shell\open\command') then
                     s:=reg.ReadString('');
                     reg.CloseKey;
                  end;
            end;
         end;
         if Pos('%', s) > 0 then Delete(s, Pos('%', s), length(s));
         if ((length(s)>0) and (s[1]='"')) then Delete (s, 1, 1);
         if ((length(s)>0) and (s[length(s)]='"')) then Delete(s, Length(s), 1);
         while ((length(s)>0) and ((s[length(s)]=#32) or (s[length(s)]='"'))) do
         Delete(s, Length(s), 1);
         result:=s;
   finally
      reg.Free;
   end;
end;

 

Aufgerufen wird die Funktion dann wie folgt:

   showmessage(GetExecutable('bmp'));;
 

Die Option Drucken funktioniert erst ab Netscape V4.0 bzw. I-Explorer 5.0 !

[letzte Aktualisierung 04.11.2011]