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
SÍ 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?