Ver Mensaje Individual
  #2  
Antiguo 27-09-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Reputación: 26
seoane Va por buen camino
Maldita pregunta casi me vuelve loco, yo tampoco entendía que hacías mal. Yo mismo lo haría igual, y efectivamente con RegQueryValueEx funciona perfectamente. Pero ya encontré la explicación, y es una tontería:

Primero debemos fijarnos en una cosa, la ayuda dice de la función RegOpenKeyEx:
Cita:
This function retrieves the data for a key's first value that has a NULL name
Es decir, no puede leer los valores que hay dentro de una clave, solo es capaz de leer el valor por defecto (Predeterminado). El parametro lpSubKey solo puede ser otra CLAVE, nil, o una cadena vacia. Es decir:

Código Delphi [-]
// Se puede hacer esto
RegQueryValue(NewKey,'', nil, bytesread);
// O tambien
RegQueryValue(NewKey,nil, nil, bytesread);
// Incluso se puede hacer esto otro
RegOpenKey(HKEY_LOCAL_MACHINE, 'SOFTWARE', NewKey);
RegQueryValue(NewKey,'A', nil, bytesread);

Es decir no puede leer otro valor distinto del predeterminado, esta función solo se incluye por compatibilidad con Windows 3.1, por eso es tan limitada.

Que agusto me quede ...
Responder Con Cita