API - path de um aplicativo associado a uma extencao

Top  Previous  Next

Path de Aplicativo associado a uma extensão

function GetExe(Ext : string) : string;

//

// Retorna o path completo do aplicativo que está associado

// ao arquivo cuja extensão você colocou em Ext

//

// Exemplo:

//

// Showmessage(GetExe('txt'));

// Vai retornar: C:\Windows\Notepad.exe

//

var

reg: TRegistry; s : string;

I: integer;

begin

s := '';

reg := TRegistry.Create;

reg.RootKey := HKEY_CLASSES_ROOT;

if reg.OpenKey('.' + ext + '\shell\open\command',false) <> false then

  begin

  s := reg.ReadString('');

  reg.CloseKey;

  end

else

  begin

  if reg.OpenKey('.' + ext, false) <> false then

  begin

  s := reg.ReadString('');

  reg.CloseKey;

  if s <> '' then

  begin

  if reg.OpenKey(s + '\shell\open\command',false) <> false then

  begin

  s := reg.ReadString('');

  end;

  reg.CloseKey;

  end;

  end;

  end;

if ((length(s) > 0and (s[1] = '"')) then

  Delete(s, 11);

i := pos('.EXE',uppercase(S));

if I = 0 then

  begin

  Result := ''

  end

else

  begin

  Result := copy(S, 1, i +3);

  end;

end;