![]() |
Adobe Registry prüfen
Hallo!
Jeder kennt den Adobe Acrobat Reader. Die Version 6.0 verlangt beim ersten Start das man die EULA akzeptiert, danach kann man den Acrobat Reader nutzen. Wenn man als Admin Adobe Acrobat installiert und sich dann als user ohne jegliche Rechte anmeldet, kann man den Acrobat Reader nur dann nutzen, wenn der Admin die EULA akzeptiert hat - ansonsten bekommt man eine Fehlermeldung. Adobe Acrobat setzt den EULA Eintrag in 2 Stellen: 1. in HKEY_LOCAL_MACHINE\SOFTWARE\Adobe\Acrobat Reader\6.0\ und 2. HKEY_CURRENT_USER\SOFTWARE\Adobe\Acrobat Reader\6.0\ in beiden Fällen muss der Schlüssel AdobeViewer vorhanden sein mit einem DWORD Wert "EULA" mit dem Integer 1 (1 = Akzeptiert nehmen ich an) Meine Absicht ist es, das mir ein Button meines Delphi Programms auskunft darüber geben kann ob a) Acrobat Reader laut Registry installiert ist b) wenn installiert, wurde die EULA akzeptiert? c) wenn nicht akzeptiert, bitte Registryeintrag an beiden Stellen setzen Hier mein Code der nicht richtig funzt:
Delphi-Quellcode:
Also die Überprüfung ob der Schlüssel i.o. ist oder nicht klappt net, das Programm ist immer der Meinung das die EULA nicht akzeptiert wurde. Irgendwie klappt das net so wie ich mir das Vorstelle. Was mach ich falsch?
////////////////////////////////////////////////////////////////////////////////
// // ADOBE REGISTRY // procedure TFmain.SpeedButton4Click(Sender: TObject); var regist_machine, regist_machine2, regist_user: TRegistry; i: integer; begin regist_machine:=TRegistry.Create; regist_machine.RootKey:=HKEY_LOCAL_MACHINE; regist_machine2:=TRegistry.Create; regist_machine2.RootKey:=HKEY_LOCAL_MACHINE; regist_user:=TRegistry.Create; regist_user.RootKey:=HKEY_CURRENT_USER; //////////////////////////////////////////////////////////////////////////////// // // HKEY_LOCAL_MACHINE // //Wenn der Schlüssel net existiert if not regist_machine.OpenKey('SOFTWARE\Adobe\Acrobat Reader\6.0\', false) then begin //motzen meldung('Adobe Acrobat Reader 6.0 Registrierungsschlüssel nicht gefunden!'); end else //wenn der Schlüssel soweit exisitiert, weiterrpüfen ob "AdobeViewer" existiert begin if not regist_machine.OpenKey('SOFTWARE\Adobe\Acrobat Reader\6.0\AdobeViewer', false) then begin //existiert der Adobeviewer nicht, wurde die EULA noch nicht akzepiert! if MessageDlg('Die EULA des Acrobat Readers wurde noch nicht akzeptiert. Jetzt freischalten?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin //prüfen ob wir den Schlüssel AdobeViewer anlegen können if regist_machine.CreateKey('AdobeViewer') then begin //regist2 mit einem anderen Wert füllen if not regist_machine2.OpenKey('SOFTWARE\Adobe\Acrobat Reader\6.0\AdobeViewer', false) then begin //motzen hinweis('Konnte nicht auf SOFTWARE\Adobe\Acrobat Reader\6.0\AdobeViewer zugreifen'); exit; end else begin regist_machine2.WriteInteger('EULA',1); meldung('ok'); end; end else begin meldung('konnte Schlüssel AdobeViewer nicht anlegen!'); end; end; end else begin hinweis('SOFTWARE\Adobe\Acrobat Reader\6.0\AdobeViewer existiert'); end; end; regist_machine.free; regist_machine2.free; end; |
Re: Adobe Registry prüfen
|
Re: Adobe Registry prüfen
Cool Danke!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:57 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