Resulta que tengo una instalación de Windows 7 Professional en la laptop de mi esposa, que muy amablemente me presta para programar y diseñar sistemas en casa. Voy al RegEdit, edito el registro y añado los valores que se muestran en la imagen. Procedo a leerlos con éste código:
procedure TDtsAdmCnx.ObtPthBBDD; var rClvRgs : TRegistry; begin rClvRgs := TRegistry.Create; try rClvRgs.RootKey := HKEY_LOCAL_MACHINE; if rClvRgs.OpenKey('SOFTWARE\Tiammat Software\Tiendita', False) then begin ibxdtabseCnn.DatabaseName := rClvRgs.ReadString('Path BBDD'); ibxdtabseCnn.Params.Clear; ibxdtabseCnn.Params.Add('user_name=' + rClvRgs.ReadString('Usuario')); ibxdtabseCnn.Params.Add('password='+ rClvRgs.ReadString('Contraseña')); end; rClvRgs.CloseKey; finally rClvRgs.Free; end; end;
Éste código funciona a las mil maravillas en Windows XP, pero a la hora de intentar leer los valores del registro de Windows 7, sólo me devuelve cadenas en blanco (el típico '') y obviamente que me arroja una excepción por intentar abrir una base de datos en Firebird 2.5 sin los parámetros requeridos.
¿Acaso estoy haciendo algo mal, es Windows, es Delphi, o qué sucede?