Ver Mensaje Individual
  #3  
Antiguo 23-10-2013
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Ubicación: Toledo - España
Posts: 1.418
Reputación: 21
Angel.Matilla Va por buen camino
Gracias por la respuesta.
1. El include esta bien puesto (registry.hpp); no sé por qué a veces me quita las extensiones.
2. He probado añadiendo una línea en el código:
Código:
bool lPrueba = rRegistro->KeyExists("SOFTWARE\\Firebird Project\\Firebird Server\\Instances");
para probar si existe o no la clave y me devuelve false. Mi no comprender; si exporto esa rama de la clave a un fichero de texto con regedit me devuelve esto:
Cita:
Nombre de clave: HKEY_LOCAL_MACHINE\SOFTWARE\Firebird Project\Firebird Server\Instances
Nombre de clase: <Ninguna clase>
Hora de última escritura: 18/09/2013 - 12:04
Valor 0
Nombre: DefaultInstance
Tipo: REG_SZ
Datos: C:\Program Files\Firebird\Firebird_2_5\
Pero el programa, que está hecho con C++ Builder 6 (esto no lo dije), me dice que no existe. Deduzco, a la vista de esta información, que existe.

Voy más allá. He probado con este otro código:
Código:
HKEY   hKey;
HKEY   keyRoot = HKEY_LOCAL_MACHINE;
String sKeyBase = "SOFTWARE\\Firebird Project\\Firebird Server\\Instances";

if (RegOpenKeyEx(keyRoot, sKeyBase.c_str(), 0, KEY_READ, &hKey))
{
     char  buffer[256];
     DWORD size = sizeof(buffer);
     if (RegQueryValueEx(hKey, "DefaultInstance", 0, 0, buffer, &size))
          ShowMessage(buffer);
     RegCloseKey(hKey);
}
Este sí se ejecuta, pero me devuelve una cadena vacía; en este último caso ¿puede ser que esté definiendo mal las variables?
Responder Con Cita