AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Probleme mit TRegistry Methoden unter Win 95!
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme mit TRegistry Methoden unter Win 95!

Ein Thema von Flox03 · begonnen am 5. Mai 2003 · letzter Beitrag vom 6. Mai 2003
 
Flox03

Registriert seit: 5. Mai 2003
2 Beiträge
 
Delphi 6 Personal
 
#1

Probleme mit TRegistry Methoden unter Win 95!

  Alt 5. Mai 2003, 15:05
Hallo!

Ich benutze in meinem Programm u.a. die TRegistry Methode OpenKey('Mein Key',false)

Das funktioniert auch alles einwandfrei, auch auf anderen Rechnern mit Win 98. Wenn der key existiert liefert die Funktion true zurück andernfalls false. Wenn der Schlüssel da ist, lese ich die einzelnen Werte ein.

Habe jetzt aber mein Programm auf einem Win 95 Rechner installiert und mit erschrecken festgestellt, dass die Abfrage If not OpenKey('Mein Key',false) immer false ist, selbst dann, wenn der Schlüssel existiert.

Habe deshalb ein kl. registry-test-prog geschrieben und festgestellt, dass die TRegistry-funktionen
KeyExists
OpenKey('',false)
OpenKeyReadOnly

unter Win95 immer fehlschlagen, auch wenn der Schlüssel da ist. Nur OpenKey('',true) scheint zu funktionieren.
Ist das normal? Kann das sein? Ich meine, wozu gibts unter Win 95 ne Registry, wenn man auf diese nicht einwandfrei zugreifen kann??

Gibts andere Möglichkeiten auf die Registry zuzugreifen?? Gibt es evtl. einen Grund, warum die Funktionen dort nich funktionieren, den man leicht beheben kann???

Bin da echt am verzweifeln. Das arbeiten mit der Registry muss doch irgendwie möglich sein.


Noch zur besseren Erklärung:
Mein Install Programm benutzt CreateKey... danach ist der Schlüssel da, unter Win 98 sowie unter Win 95.

Wenn man dann das eigentliche Prog startet, wird in form.create meine function load_registry aufgerufen:
Code:
function load_registry:boolean;
var reg:TRegistry;
begin
  reg:=TRegistry.Create;
  reg.RootKey:=HKEY_LOCAL_MACHINE;
  if not reg.OpenKey('SOFTWARE\MyCompany\MYProduct\',false)then begin
    reg.Free;
    result:=false;
  end else begin
    result:=true;
 
    {hier werden die werte geladen.} 
   
     reg.Free
  end;
end;
Hier der Aufruf aus Form.create:
Code:
{...} 
if not load_registry then begin
      MessageBox(WindowHandle,'Fehler beim lesen der Registry-Schlüssel.'+#13+ 
                   'Stellen Sie sicher dass das Programm ordnungsgemäß installiert wurde.',
                   'Fehler!',MB_ICONEXCLAMATION or MB_OK);

{...}
Das hat aber als Ergebnis:
Win 95: MessageBox wird angezeigt, auch wenn Schlüssel da ist ----> load_registry=false;

Win 98: alles läuft einwandrei.

genauso schlägt unter Win 95 (wie oben schon geschrieben)
openKeyReadOnly
KeyExists

immer fehl, auch wenn der Schlüssel 100%ig da ist.

Ich verstehs nicht...

Wie gesagt, läuft auf mehreren Win 98 Rechnern einwandfrei...
...nur das dumme ist, grade auf dem Win 95 Rechner MUSS es laufen.

Woran kann es liegen? Wer weiß Rat?

MfG,
Flox03!
  Mit Zitat antworten Zitat
 


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 05:42 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