Problemas en el registro
Publicado por Cristián (115 intervenciones) el 18/05/2003 21:33:54
Hola!! espero alguien me ayude.. no se que pasa... este codigo siempre me funciono muy bien..... bueno.... Quiero jalar del regsitro de windows, lo que es el propietario de la maquina, version de windows, etc.. en Windows 98 y Me.... ahora que lo quiero hacer en XP pues no funciona. Este es mi codigo:
if windows<>'Win9X' then
begin
label9.Caption:=Windows;
regis:=Tregistry.Create;
regis.RootKey:=HKEY_LOCAL_MACHINE;
regis.OpenKey('\SOFTWARE\Microsoft\WindowsNT\CurrentVersion',true);
RegisteredOwner:=regis.ReadString('RegisteredOwner');
ProductName:=regis.ReadString('ProductName');
ProductID:=regis.ReadString('ProductID');
CSDVersion:=regis.ReadString('CSDVersion');
regis.Free;
end;
Lo de la variable Windows... es un string resultado de una funcion que me devuelve Win9x para sistemas no NT y WinNT para los demas. O sea que para Windows XP la variable es WinNT.
el codigo que uso es igual al que uso cuando uso WindowsMe, con la excepcion que la llave no es
regis.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion',true);
sino
regis.OpenKey('\SOFTWARE\Microsoft\WindowsNT\CurrentVersion',true);
Ya verifique en Windows XP que en esa llave esten los valores que quiero, y si estan, con los nombres que puse en mi codigo
RegisteredOwner:=regis.ReadString('RegisteredOwner'); etc...
Pero lo mas raro es que no me los guarda en las variables.... cuando pongo Label1.caption:=RegisteredOwner; simplemente me deja en blanco el label, no escribe nada.
Que puedo hacer??
if windows<>'Win9X' then
begin
label9.Caption:=Windows;
regis:=Tregistry.Create;
regis.RootKey:=HKEY_LOCAL_MACHINE;
regis.OpenKey('\SOFTWARE\Microsoft\WindowsNT\CurrentVersion',true);
RegisteredOwner:=regis.ReadString('RegisteredOwner');
ProductName:=regis.ReadString('ProductName');
ProductID:=regis.ReadString('ProductID');
CSDVersion:=regis.ReadString('CSDVersion');
regis.Free;
end;
Lo de la variable Windows... es un string resultado de una funcion que me devuelve Win9x para sistemas no NT y WinNT para los demas. O sea que para Windows XP la variable es WinNT.
el codigo que uso es igual al que uso cuando uso WindowsMe, con la excepcion que la llave no es
regis.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion',true);
sino
regis.OpenKey('\SOFTWARE\Microsoft\WindowsNT\CurrentVersion',true);
Ya verifique en Windows XP que en esa llave esten los valores que quiero, y si estan, con los nombres que puse en mi codigo
RegisteredOwner:=regis.ReadString('RegisteredOwner'); etc...
Pero lo mas raro es que no me los guarda en las variables.... cuando pongo Label1.caption:=RegisteredOwner; simplemente me deja en blanco el label, no escribe nada.
Que puedo hacer??
Valora esta pregunta


0