Thema: Delphi IsAdobeReaderInstalled

Einzelnen Beitrag anzeigen

axellang

Registriert seit: 3. Mai 2003
Ort: München
138 Beiträge
 
Delphi XE2 Enterprise
 
#17

Re: IsAdobeReaderInstalled

  Alt 7. Aug 2007, 16:22
Zitat von PeterPanino:
Hallo,
Wie kann man verlässlich feststellen, ob Adobe Reader installiert ist?
Code:

function CleanOpenCmd(Cmd:String):String;
var i,j:integer;
begin
  result:='';
  for i:=1 to length(Cmd) do
    begin
      for j:=i to length(Cmd) do
        begin
          result:=result+Cmd[j];
          if FileExists(Result) then
            begin
              exit;
            end;
        end;
      result:='';
    end;
end;

// Ermittelt die Anwendung mit der standardgemäß die Dateien verknüpft sind.
function IsAppOnBoard(FileExt:string):String;
var Reg:TRegistry; tmp:String;
begin
  Result:='';
  Reg:=TRegistry.Create(KEY_READ);
  try
     Reg.RootKey:=HKEY_CLASSES_ROOT;
      // False, weil der Schlüssel nicht automatisch erstellt werden soll
       if Reg.OpenKey(FileExt, False) then
        begin
          tmp:=Reg.ReadString('');
          Reg.CloseKey;
              if Reg.OpenKey(tmp+'\Shell\Open\Command', False) then
                begin
                  tmp:=Reg.ReadString('');
                  Reg.CloseKey;
                  Result:=CleanOpenCmd(tmp);
                end;
        end;
  finally
    Reg.Free;
  end;
end;

// Beispiel
procedure TForm1.Button1Click(Sender: TObject);
begin
  showmessage(IsAppOnBoard('.pdf'));
end;
Funktioniert natürlich mit fast allen gängigen Anwendungen (*.doc;*.xls, usw...)


all the best

Alexander
Alexander Lang
  Mit Zitat antworten Zitat