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:
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;
Ich kan mir das nicht erklären besonders weil vollkommen andere Werte auftauchen, die dort nicht stehen.
Der Benutzer hat ein AdminAccount.
Hat jemand einen Rat? Ich hoffe es insgeheim.
Gruß
Mazel