Vielen Dank an alle für die Tipps!
An SirThornberry: Ich wollte wissen, ob AdobeReader installiert ist, da ich auf das
ActiveX zugreifen möchte.
An shmia: Ich habe mittlerweile auch noch einen anderen Code gefunden, den ich so für Adobe Reader adaptiert habe:
Delphi-Quellcode:
function IsAdobeReaderInstalled: Boolean;
var
AdobeReader: OLEVariant;
begin
try
AdobeReader := CreateOLEObject('AcroPDF.PDF');
try
Result := true;
finally
AdobeReader := UnAssigned;
end;
except
Result := false;
end;
end;
Hier ist das adaptierte Beispiel, auf das du hingewiesen hast:
Delphi-Quellcode:
function ProgIDExists(const ProgID: WideString): Boolean;
var
Tmp: TGUID;
begin
Result := Succeeded(CLSIDFromProgID(PWideChar(ProgID), Tmp));
end;
function IsWordInstalled: Boolean;
begin
Result := ProgIDExists('AcroPDF.PDF');
end;
Ich habe das erstere Beispiel auf zwei verschiedenen Computern ausprobiert (auf einem ist der Reader installiert, auf dem anderen nicht). Es funktioniert problemlos.
Rein prinzipiell: Welches der beiden Beispiele wäre empfehlenswerter?