AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

IsAdobeReaderInstalled

Ein Thema von PeterPanino · begonnen am 6. Aug 2007 · letzter Beitrag vom 7. Aug 2007
Antwort Antwort
Seite 1 von 2  1 2   
PeterPanino

Registriert seit: 4. Sep 2004
1.442 Beiträge
 
Delphi 10.4 Sydney
 
#1

IsAdobeReaderInstalled

  Alt 6. Aug 2007, 18:57
Hallo,
Wie kann man verlässlich feststellen, ob Adobe Reader installiert ist?
  Mit Zitat antworten Zitat
Balu der Bär
(Gast)

n/a Beiträge
 
#2

Re: IsAdobeReaderInstalled

  Alt 6. Aug 2007, 18:58
Guck in der Registry ob da entspr. Einträge vorhanden sind.
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

Re: IsAdobeReaderInstalled

  Alt 6. Aug 2007, 19:04
Siehe: http://www.delphipraxis.net/internal...ct.php?t=82649
Den String 'Word.Application' muss man durch 'AcroPDF.PDF' ersetzen.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: IsAdobeReaderInstalled

  Alt 6. Aug 2007, 19:57
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?
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.442 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: IsAdobeReaderInstalled

  Alt 6. Aug 2007, 21:54
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?
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.752 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: IsAdobeReaderInstalled

  Alt 6. Aug 2007, 22:00
Zitat von PeterPanino:

An SirThornberry: Ich wollte wissen, ob AdobeReader installiert ist, da ich auf das ActiveX zugreifen möchte.
So weit ich das weiß, sind die ActiveX Objekte aber Versionsabhängig.
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
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#7

Re: IsAdobeReaderInstalled

  Alt 6. Aug 2007, 22:03
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....".
  Mit Zitat antworten Zitat
Kinimod8

Registriert seit: 9. Jan 2004
Ort: Barsbüttel
317 Beiträge
 
Delphi 6 Personal
 
#8

Re: IsAdobeReaderInstalled

  Alt 6. Aug 2007, 22:09
Zitat von PeterPanino:
Rein prinzipiell: Welches der beiden Beispiele wäre empfehlenswerter?
Siehe auch http://luckie-online.de/Developer/Ar...Exceptions.php
Dominik Peters
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#9

Re: IsAdobeReaderInstalled

  Alt 6. Aug 2007, 22:22
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;
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.442 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: IsAdobeReaderInstalled

  Alt 6. Aug 2007, 22:30
Zitat von Klaus01:
So weit ich das weiß, sind die ActiveX Objekte aber Versionsabhängig.
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.
Wieso, die CLSID 'AcroPDF.PDF' müsste doch für alle Reader-Versionen gültig sein, oder?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz