Entwickler-Ecke

Dateizugriff - Ermitteln, welche Anwendung die Datei öffnet


galagher - Mi 28.07.04 19:46
Titel: Ermitteln, welche Anwendung die Datei öffnet
Hallo!

Ich möchte den Pfad+Namen der Anwendung, die einen bestimmten Dateityp verarbeitet. ZB. möchte ich ermitteln, mit welchem Programm .txt-Dateien "verbunden" sind. Weiss jemand weiter? Danke!!!


Delete - Do 29.07.04 00:16

Steht alle sin der Registry unter HKCR.


Delete - Do 29.07.04 09:16

Wenn es nur darum geht, die zu startende Exe zu finden (meist das Verb open in der Registry), dann ist diese Lösung etwas einfacher:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
uses
  ShellAPI;

function GetExecutable(const DocumentFile: string): string;
var
  buf : array[0..MAX_PATH]of char;
begin
  ZeroMemory(@buf,sizeof(buf));
  if(FindExecutable(pchar(DocumentFile),nil,buf) > 32and
    (buf[0] <> #0then
  SetString(Result,buf,lstrlen(buf))
    else Result := '';
end;


ShowMessage(GetExecutable('c:\Eigene Dateien\Textdatei.txt'));


Ansonsten gäbe es noch diverse "Assoc*"-Funktionen, die aber laut PSDK min. den IE5 voraussetzen (damit sie auch unter 95, 98 und NT4 funktionieren), oder (wie Luckie sagte): man guckt selbst in die Registry und sucht sich alles raus.


galagher - Do 29.07.04 10:57

GetExecutable - genau das!

Vielen Dank!