![]() |
IsAdobeReaderInstalled
Hallo,
Wie kann man verlässlich feststellen, ob Adobe Reader installiert ist? |
Re: IsAdobeReaderInstalled
Guck in der Registry ob da entspr. Einträge vorhanden sind.
|
Re: IsAdobeReaderInstalled
Siehe:
![]() Den String 'Word.Application' muss man durch 'AcroPDF.PDF' ersetzen. |
Re: IsAdobeReaderInstalled
Willst du wirklich wissen ob der Adobe-Reader installiert ist oder willst du nur wissen ob ein Programm zum öffnen von PDF-Dateien installiert/registriert ist?
|
Re: IsAdobeReaderInstalled
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:
Hier ist das adaptierte Beispiel, auf das du hingewiesen hast:
function IsAdobeReaderInstalled: Boolean;
var AdobeReader: OLEVariant; begin try AdobeReader := CreateOLEObject('AcroPDF.PDF'); try Result := true; finally AdobeReader := UnAssigned; end; except Result := false; end; end;
Delphi-Quellcode:
Ich habe das erstere Beispiel auf zwei verschiedenen Computern ausprobiert (auf einem ist der Reader installiert, auf dem anderen nicht). Es funktioniert problemlos.
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; Rein prinzipiell: Welches der beiden Beispiele wäre empfehlenswerter? |
Re: IsAdobeReaderInstalled
Zitat:
Also wenn Dein Programm das ActiveX Object für AdobeReader Version 6 einbindet wird es vermutlich nicht mit AdobeReader Version 7 arbeiten. Unabhängiger bist Du, wenn Du das pdf im TWebbrowser anzeigen läßt. Auch hier muß ein AdobeReader installiert sein, es ist aber gleich welche Version. Grüße Klaus |
Re: IsAdobeReaderInstalled
am sichersten ist immer eine kombination.
aus irgendeinem grund ist der rechner des clients mal ein wenig anders konfiguriert. deshalb sind mehrere ausweichfälle nur von vorteil für den programmierer, damit du später dir nicht vor den kofp schlägst und sagen musst: "hätte ich doch gleich mal....". |
Re: IsAdobeReaderInstalled
Zitat:
![]() |
Re: IsAdobeReaderInstalled
bezugnehmend auf Kinimod8: man kann mit varIsEmpty() arbeiten.
der erste fall würde dann also so aussehen:
Delphi-Quellcode:
function IsAdobeReaderInstalled(): Boolean;
var AdobeReader: OLEVariant; begin AdobeReader := CreateOLEObject('AcroPDF.PDF'); Result := not VarIsEmpty(AdobeReader); if Result then AdobeReader := UnAssigned; end; |
Re: IsAdobeReaderInstalled
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz