Autor Beitrag
moloch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 451

Win 2000
D5 Prof
BeitragVerfasst: Mi 11.05.05 07:18 
Hallo Leute,

ich habe eine Anwendung geschrieben die PDF-Dateien erstellt.
Jetzt möchte ich gerne wissen wie man überprüft ob überhaupt Acrobat Reader installiert ist um Exceptions zu vermeiden.
Kann mir da jemand helfen?

mfg
moloch
mirom
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 56

Win2000, Win XP

BeitragVerfasst: Mi 11.05.05 07:44 
Wie hast du es gemacht, hast eine Komponente benutzt oder alles sebs gebastelt ?

Grüße, Miro M.
moloch Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 451

Win 2000
D5 Prof
BeitragVerfasst: Mi 11.05.05 07:55 
komponente benutzt...
mirom
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 56

Win2000, Win XP

BeitragVerfasst: Mi 11.05.05 08:03 
Komerzielle oder Freeware? Kannst, bitte, sagen welche ?

Danke, Miro M.
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mi 11.05.05 08:12 
Ich würde in der Registry mal nachsehen, ob Acrobat nach der Installation einen Schlüssel ablegt (Das wird bestimmt der Fall sein). Diesen kannst du dann prüfen.
Eine andere, aber nicht so sichere, Möglichkeit wäre, den Installationspfad zu prüfen. Der könnte aber variieren.

@mirom:
Bei [url=www.torry.net]Torry[/url] wirst du bestimmt was passendes finden.
mirom
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 56

Win2000, Win XP

BeitragVerfasst: Mi 11.05.05 08:33 
versuche:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
  Regis := TRegistry.Create(KEY_READ);
  Regis.RootKey := HKEY_CLASSES_ROOT;
  if Regis.OpenKey('Applications\AcroRd32.exe\shell\Open\command', False) then begin
    txt := Regis.ReadString('');
    Regis.CloseKey;
  end;

  if FileExists(txt + '\AcroRd32.exe') then **** OK ****


Grüße, Miro M.

Moderiert von user profile iconChristian S.: Code- durch Delphi-Tags ersetzt.
moloch Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 451

Win 2000
D5 Prof
BeitragVerfasst: Do 12.05.05 11:19 
hey leute,

so klappt es. Wenn es daran was auszusetzen gibt, bitte bescheid sagen.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
  Result := false;
  reg := TRegistry.Create(KEY_READ);
  with reg do
  begin
    try
      RootKey := HKEY_CLASSES_ROOT;
      if OpenKey('CLSID\{CA8A9780-280D-11CF-A24D-444553540000}', False)
        then Result := true
    finally
      CloseKey;
      Free
    end
  end


mfg
moloch

Moderiert von user profile iconChristian S.: Code- durch Delphi-Tags ersetzt.
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Do 12.05.05 11:23 
Es kann aber immer noch zu Fehlern kommen, wenn der User den AcrobatReader per Hand gelöscht hat :wink: .
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Do 12.05.05 11:33 
user profile iconHeiko hat folgendes geschrieben:
Es kann aber immer noch zu Fehlern kommen, wenn der User den AcrobatReader per Hand gelöscht hat :wink: .

Oder die EXE umbenennt.
Solchen Usern werden bei uns regelmäßig die Hände abgehackt. :wink:
Das ist dann echte Dummheit. Das Programm sollte dann mit einer schweren Schutverletzung den ganzen Rechner mit ins Nirvana ziehen. :twisted:
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 12.05.05 11:33 
Aus dem Grund gräbt man noch ein bisschen tiefer: DoesObjectExist@DP. Als Parameter wäre in dem Fall die GUID des Acrobat ({CA8A9780-280D-11CF-A24D-444553540000}) zu benutzen. Die Funktion liest zusätzlich noch den Standardwert, üblicherweise der Dateiname, und liefert TRUE nur zurück, wenn die Datei gefunden wurde.