Ver Mensaje Individual
  #1  
Antiguo 27-09-2006
Thor Thor is offline
Registrado
 
Registrado: jul 2004
Posts: 6
Reputación: 0
Thor Va por buen camino
RegQueryValue que hago mal?

Hola, intentaba acceder al registro con la función del título con este código:
Código Delphi [-]
var
  NewKey: Hkey;
  Buffer: array[0..32765] of char;
  i: integer;
  bytesread: integer;
begin
  bytesread := 0;
  if RegOpenKey(HKEY_LOCAL_MACHINE, 'SOFTWARE\A', NewKey) = ERROR_SUCCESS then
  begin
    i := RegQueryValue(NewKey, 'ejem', nil, bytesread);
    FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, nil, i, 0, buffer, 32765, nil);
    ShowMessage(buffer);
  end
  else
    ShowMessage('Error al acceder a la clave');
end;
Me he mirado la documentación de msdn y ejemplos que he encontrado por la red, pero al ejecutarlo y gracias a FormatMessage me muestra el error:
"El sistema no puede hallar el archivo especificado"
Y existe el valor "ejem" en la clave HKEY_LOCAL_MACHINE\SOFTWARE\A

Según la documentación de msdn con el tercer parametro de RegQueryValue a nil se deberia guardar en bytesread la longitud de el valor que voy a leer, pero siempre esa longitud vale cero.

No es que busque otro camino para hacer lo mismo, ya que con RegQueryValueEx si que consigo acceder al valor, sino que me gustaría por qué así no funciona.

Gracias y saludos.
Responder Con Cita