![]() |
Registry lesen unter Vista schlägt fehl
Hallo,
für mein Programm MyPC lesen ich ein paar Informationen aus der Registry aus oder zumindest versuche ich es auch unter Vista zum laufen zu bringen. Das Problem ist, dass manche Werte ausgelesen werden, wie die BuildLab andere nicht ausgelesen werden dann ist aber auch wieder der Unterschied auf welchem Vista (bei Ultimate scheint es nicht zu gehen, bei anderen Versionen doch - ich habe kein Vista, bin daher auf andere angewiesen), und andere Werte wiederum ein Wert zurückgeben den ich mir nicht erklären kann. Bei mir unter XP werden alle Werte korrekt ausgegeben. Hier erstmal der Code, so wie ich ihn bei einem Freund unter Vista Ultimate getestet habe:
Delphi-Quellcode:
Ich kan mir das nicht erklären besonders weil vollkommen andere Werte auftauchen, die dort nicht stehen.
procedure TForm1.Button1Click(Sender: TObject);
var Reg: TRegistry; begin Reg := TRegistry.Create(KEY_READ); // sollte das selbe sein wie Reg.Access := KEY_READ with Reg do try RootKey := HKEY_LOCAL_MACHINE; OpenKeyReadOnly('Software\Microsoft\Windows NT\CurrentVersion'); // es sollte privat kommen aber Microsoft kommt ShowMessage(ReadString('RegisteredOrganization')); // BuildLab wird richtig ausgelesen ShowMessage(ReadString('BuildLab')); // es sollte der Name kommen aber leerer String kommt ShowMessage(ReadString('RegisteredOwner')); // selbe wie RegisteredOwner ShowMessage(ReadString('ProductID')); finally Reg.Free; end; end; Der Benutzer hat ein AdminAccount. Hat jemand einen Rat? Ich hoffe es insgeheim. :angel2: Gruß Mazel |
Re: Registry lesen unter Vista schlägt fehl
Ist das zufälligerweise ein 64-bit-Windows?
Dann greift dein Code in Wirklichkeit auf Wow6432Node\Software\Microsoft\Windows NT\CurrentVersion zu. Report No: 23429 (RAID: unavailable) Status: Closed TRegistry causes a bunch of bugs when accessing 64 bit registries ![]() Da bringt mit BDS 2006 nichtmal das manuelle Setzen des Flags für 64-Bit-Zugriff etwas, da OpenKeyReadOnly ziemlich aggressiv ist (Access wird intern fest gesetzt, statt nur Flags zu ändern, daher ist dein voriges Setzen der Access-Mask eh unwirksam). Der Bug ist angeblich gefixt... kann jemand, der ein D11 benutzt, das bestätigen (inklusive Möglichkeit der 64-bit-Nutzung)? |
Re: Registry lesen unter Vista schlägt fehl
Ja, er hat ein 64 bit Rechner.
Wie kann ich das aber nun umgehen? |
Re: Registry lesen unter Vista schlägt fehl
Zitat:
![]() |
Re: Registry lesen unter Vista schlägt fehl
Mal ein paar Möglichkeiten, keine davon wirklich perfekt:
|
Re: Registry lesen unter Vista schlägt fehl
Ich danke euch für die Informationen. :)
Das konnte ich vorher nicht wissen, da ich mich mit Wow64 noch nie beschäftigt habe. Gruß Mazel |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:27 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 by Thomas Breitkreuz