// Es wird das Programme (bzw. DLL) aufgefunden, welches für das Öfnen
// einer Datei mit entsprechender Extension
(Endung) verantwortlich ist.
// siehe auch
Infos für Dateiendungen auffinden

// Getestet mit D2010 unter W7

uses shellapi; 
 
function findprog(edg: string; out s: string): boolean; 
var 
  dummy, hlp: string; 
  buffer: Pchar; 
  th: THandle; 
begin 
  hlp := copy(edg, 1, 1); 
  if hlp = '*' then 
    delete(edg, 1, 1) 
  else if hlp <> '.' then 
    edg := '.' + edg; 
  dummy := 'dummy' + edg; 
  getmem(buffer, max_path); 
  result := false; 
  th := createfile(Pchar(dummy), 0, 0, nil, create_always, 0, 0); 
  if th = INVALID_HANDLE_VALUE then 
    exit; 
  closehandle(th); 
  result := findexecutable(Pchar(dummy), nil, buffer) > 32; 
  s := buffer; 
  freemem(buffer); 
  deletefile(dummy); 
end; 
 
// Beispielaufruf 
 
procedure TForm1.Button1Click(Sender: TObject); 
var 
  s: string; 
begin 
  if not findprog('bmp', s) then 
    showmessage('Diese Dateiendung ist nicht registriert!') 
  else 
    showmessage(s); 
end; 



 

Zugriffe seit 6.9.2001 auf Delphi-Ecke