Info Delphi

La magia de la programación a tu alcance

Registro de Windows

Hola a todos,

ADVERTENCIA: NO me hago responsable de los daños que sufras como consecuencia de una manipulación incorrecta de la información contenida en este artículo.

Como hablábamos ayer, se pueden usar los ficheros ini para almacenar determinados valores que necesite nuestra aplicación, aunque microsoft recomienda el uso del registro de windows, pero, ¿qué es el registro de windows y como se usa?

A grandes rasgos, podemos decir que es un macro fichero ini para todo el sistema operativo a partir de sus versiones de 32 bits; cualquier cosa que altere el sistema, en cualquiera de sus aspectos, ya sea software o hardware modificará el registro.

Yo, personalmente, prefiero usar los ficheros ini en mi aplicación, ya que los creo o destruyo según mi propio criterio sin modificar para nada el sistema del usuario final, pero puede que tu quieras, o necesites, modificar el registro de windows por alguna circunstancia.

Aunque su apariencia puede desatar en nosotros un escalofrío, sobre todo si lo miramos a través del programa, proporcionado por microsoft, regedit, en realidad solo nos interesa una rama del mismo.

HKEY_CURRENT_USER\software

Esta ruta es donde, generalmente, guardaremos la información. Sin embargo, si te fijas bien, verás que otros programas también tiene claves y valores en otros lados, como en “HKEY_LOCAL_MACHINE\Software”. Puedes almacenar datos en donde quieras, pero se recomienda que sea en esta clave.

Antes de continuar, una observación, el constructor del objeto TRegistry se inicializa en HKEY_CURRENT_USER, en caso de que quieras utilizar una rama distinta del registro deberás modificar la propiedad RootKey.


ATENCIÓN: Recuerda que el registro de windows es su corazón, cualquier cambio fuera de los límites de la rama que hemos mencionado, puede dejar tu sistema inutilizado

Si sufres algún problema que te impide acceder al sistema, prueba lo siguiente:

  1. Ve a Inicio -> Apagar el equipo
  2. Reiniciar el equipo con un disco que contenga MSDOS y el programa scanreg por ejemplo un disco de Windows95 o windows98.
  3. Una vez en MS-DOS debes escribir scanreg /restore, presiona enter y reinicia el equipo.

Si sigues este procedimiento, restaurarás el Registro al estado en que estaba la última vez que el sistema se inició correctamente.

Vamos entonces a aprender a usar este fichero en nuestra aplicación.

Delphi nos proporciona una unidad que encapsula las llamadas a la API de windows, de forma que nos resulta bastante fácil manipular el fichero del registro, Registry, que crea la clase TRegsitry (que originales, ¿verdad?). Su uso es bastante fácil:

procedure TForm1.FormCreate(Sender: TObject);
var
Registro: TRegistry;
Abierto: boolean;
begin
Registro := TRegistry.Create;

Una vez que tenemos creada nuestra instancia de registro, ya podemos usarla para acceder a el, para ello debemos abrirla

Abierto := Registro.OpenKey(Clave, False);

OpenKey devuelve un valor booleano para indicar si se abrió correctamente la clave, pero si la clave no existe puedes cambiar el segundo parámetro de forma que con true, forzarás al sistema a crearla.

Ahora ya podemos leer, o escribir, en esa clave usando las funciones tipo Registro.Readtipodedato y Registro.Writetipodedato

if Abierto then
color := Registro.Readstring('ColorFondo');

tal y como hacíamos con los fichero ini.

Recuerda, al terminar de usar el registro, eliminar la referencia al objeto Registro con el procedimiento Free

Registro.Free;
end;

Saludos

Jueves, 29 enero 2009 Posted by | Delphi | Deja un comentario