AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Adobe Registry prüfen

Ein Thema von Ajintaro · begonnen am 9. Feb 2005 · letzter Beitrag vom 9. Feb 2005
Antwort Antwort
Benutzerbild von Ajintaro
Ajintaro

Registriert seit: 20. Okt 2004
Ort: Sankt Augustin
138 Beiträge
 
Delphi XE6 Starter
 
#1

Adobe Registry prüfen

  Alt 9. Feb 2005, 15:12
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:
////////////////////////////////////////////////////////////////////////////////
//
// 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;
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?
Jaimy
DAoC 2.0 -> Camelot Unchained !
  Mit Zitat antworten Zitat
shmia

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

Re: Adobe Registry prüfen

  Alt 9. Feb 2005, 15:23
Kuckst du:
http://www.delphipraxis.net/internal...ct.php?t=46381
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Ajintaro
Ajintaro

Registriert seit: 20. Okt 2004
Ort: Sankt Augustin
138 Beiträge
 
Delphi XE6 Starter
 
#3

Re: Adobe Registry prüfen

  Alt 9. Feb 2005, 16:42
Cool Danke!
Jaimy
DAoC 2.0 -> Camelot Unchained !
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:16 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