Programmieren - alles kontrollieren 4.940 Themen, 20.676 Beiträge

VBA - Wie prüfe ich ob der Acrobat Reader installiert ist?

Jürgen124 / 9 Antworten / Baumansicht Nickles

Hallo, habe eine Access Anwendung aus der ein PDF mit dem Acrobat Reader angezeigt wird.

Möchte vor der Anzeige aber testen ob der Reader überhaupt installiert ist. Wie (mit welchem Code) mach ich das?

Schon mal besten Dank,
Jürgen

bei Antwort benachrichtigen
cscherwinski Jürgen124 „VBA - Wie prüfe ich ob der Acrobat Reader installiert ist?“
Optionen

Start-Ausführen-acroread.exe eingeben.
Startet der Acrobat Reader?

Viel Erfolg wünscht Christian
bei Antwort benachrichtigen
Synthetic_codes Jürgen124 „VBA - Wie prüfe ich ob der Acrobat Reader installiert ist?“
Optionen

versuch doch einfach mal im Programmverzeichnis die .exe vom Adobe Reader zu öffnen. Einfacher wäre es allerdings, in der Windows-Registry zu überprüfen, ob das PDF Dateiformat mit einer Anwendung verknüpft ist. Das hätte noch den Vorteil, dass deine Nutzer auf diese AdobeBloatware nicht angewiesen wären, und dein Programm auch mit zb Foxit kompatibel wäre.

der Dazugehörige Schlüssel müsste HKEY_CLASSES_ROOT\.pdf sein.

'); DROP TABLE users;--
bei Antwort benachrichtigen
Borlander Synthetic_codes „versuch doch einfach mal im Programmverzeichnis die .exe vom Adobe Reader zu...“
Optionen
versuch doch einfach mal im Programmverzeichnis die .exe vom Adobe Reader zu öffnen.
Das kracht schon wenn der Reader nicht im Standardverzeichnis installiert ist!

Einfacher wäre es allerdings, in der Windows-Registry zu überprüfen, ob das PDF Dateiformat mit einer Anwendung verknüpft ist.
Scheint mir deutlich besser, sollte aber eigentlich nicht notwendig sein dafür in der Registry nachzusehen. Sollte irgendwie ohne größeren Aufwand möglich sein zu prüfen sein ob und welche Anwendung mit der Dateiendung PDF verknüpft ist. Fragt mich jetzt aber bitte nicht wie die entsprechende Funktion von VBA heißt ;-)


Gruß
Borlander
bei Antwort benachrichtigen
Synthetic_codes Borlander „ Das kracht schon wenn der Reader nicht im Standardverzeichnis installiert ist!...“
Optionen

vielleicht ein shell-aufruf auf eine vorgefertigte pdf datei? wenn er die nicht öffnen kann, müsste die entsprechende WINAPI Funktion dazu doch eigentlich einen fehler zurückliefern? aber ganz im ernst, keine ahnung.

zu meinem ersten vorschlag, ich ging davon aus, dass jemand der explizit nur nach dem reader fragt, ihn auch nur da hin installieren würde wo er von sich aus hin will: eben nach %PROGRAM FILES%\Adobeverzeichnis (kp wie die env dazu korrekt heisst, bin aber jetzt auch zu faul nachzuschauen)

'); DROP TABLE users;--
bei Antwort benachrichtigen
Borlander Synthetic_codes „vielleicht ein shell-aufruf auf eine vorgefertigte pdf datei? wenn er die nicht...“
Optionen

Das sollte schon irgendwie in einer benutzbaren Form gekapselt sein. Und als Datei müsste das zu öffnende Dokument sowieso vorliegen, mir ist zumindest nicht bekannt, daß man dem Adobe Reader anderweitig Dokumente übergeben könnte (außer vielleicht dem Browser-Plugin).

%PROGRAM FILES%\Adobeverzeichnis
Das Problem bei diesen Ansatz: Dabei müsste man sich darauf verlassen, daß zukünftige Versionen weiterhin im Adbobeverzeichnis installiert werden und keinen anderen Namen wählen. Wir erinnern uns daran, daß der Adobe Reader ursprünglich mal Acrobat Reader hieß. Würde mich daher auch nicht drauf verlassen, daß die Ausführbare Datei weiterhin den selben Namen hat.

bei Antwort benachrichtigen
Synthetic_codes Borlander „Das sollte schon irgendwie in einer benutzbaren Form gekapselt sein. Und als...“
Optionen

noch dazu fällt mir grade ein, dass bei manchen Virenscannern das Öffnen von Exe-Dateien die heuristik anspringen lässt. Also wie schon von Borlander gesagt, nutze lieber meinen 2. vorschlag, in dem du prüfst ob dem PDF Format eine Anwendung zugewiesen ist. das ist portabler und vermeidet relativ sicher störende interaktionen mit Antivirensoftware

'); DROP TABLE users;--
bei Antwort benachrichtigen
Jürgen124 Nachtrag zu: „VBA - Wie prüfe ich ob der Acrobat Reader installiert ist?“
Optionen

Also habs mal so gelößt: Suche im Programm-Verzeichnis die Datei "AcroRd32" - das ist der Acrobat Reader. Wenn die Datei da ist ist soweit alles in Ordnung. Ich frag mich bloß ob der Reader in allen Versionen und für alle Zeit so heiß. Gruß Jürgen.

bei Antwort benachrichtigen
PaoloP Jürgen124 „VBA - Wie prüfe ich ob der Acrobat Reader installiert ist?“
Optionen

Umjottes Willen.
Du kannst doch in VBA API Funktionen für die Registry benutzen.

http://www.shadoware.de/files/vb/registry.zip

Dieses altbekannte Registry Modul sollte dir dabei helfen.
Info dazu: http://www.shadoware.de/vb/tutorials/registry.html
oder Google.

Jedes mal wenn jemand "Cloud" sagt, verliert ein Engel seine Flügel.
bei Antwort benachrichtigen
peterson Jürgen124 „VBA - Wie prüfe ich ob der Acrobat Reader installiert ist?“
Optionen

Ich weiß nicht, ob es Dir hilft, aber ich versuche es mal.

Ich arbeite mit StarMoney 7 und das Programm will unbedingt den Adobe als PDF-Reader, um das Handbuch zu öffnen.
Ich habe den Adobe aber nicht drauf, sondern nur den Foxit Reader.
Und dieser soll gefälligst das Handbuch aufmachen.

Da ich im Programmcode nix gefunden habe, habe ich halt in der Registry gesucht, wo das Programm nachsucht. Und da habe ich eine einzige Stelle gefunden. Allerdings ist das für XP, bei Vista ist das woanders.
Dort habe ich dann die Adobe-EXE (acroRD32.exe) rausgeworfen und den Foxit eingetragen.

Vielleicht kannst Du das auch mit VBA abfragen.

HKEY_CLASSES_ROOT\Software\Adobe\Acrobat\Exe\"D:\Programme\Foxit Reader\Foxit Reader.exe"


bei Antwort benachrichtigen