Registro de Windows

13/05/2004 - 16:24 por Willser F. González C. | Informe spam
Hola Grupo,

tengo dos inquietudes acerca del acceso al registro de Windows:

En él tengo lo siguiente:

Llave: HKEY_LOCAL_MACHINE\SOFTWARE\Empresa\PMTEC
Sección: Serial
Valor: 45-55-57-48-56-53-53-55-48-54

Pero usando GetProfileString(LPCTSTR lpszSection, LPCTSTR lpszEntry, LPCTSTR
lpszDefault = NULL) de CWinApp, esta función siempre me busca en
HKEY_CURRENT_USER, y además siempre busca dentro de una llave que termina
con el nombre del proyecto, es decir que si tengo un proyecto llamado
Registro, entonces siempre busca en:
HKEY_CURRENT_USER\SOFTWARE\Empresa\Registro, igual si voy a crear una nueva
sección, si no existe la ruta anterior, ésta se crea automáticamente.

Entonces he intentado usar GetProfileString(), de la API, pero sin embargo
no he podido obtener el valor de la sección.

La llave es creada por un tercero, entonces no hay modo de intentar cambiar
de LOCAL_MACHINE a CURRENT_USER.

Les agradezco cualquier ayuda al respecto.
 

Leer las respuestas

#1 Cholo Lennon
13/05/2004 - 19:26 | Informe spam
Utiliza en su lugar la clase CRegKey (atlbase.h). Con la misma puedes
acceder a cualquier lugar del registro. Esta clase si bien es de ATL la
puedes usar sin problemas en un proyecto MFC.

#include <atlbase.h>
...

CRegKey regkey;

// Abre la clave especificada. Si no existe la crea
if (regkey.Create(
HKEY_LOCAL_MACHINE,
_T("SOFTWARE\\Empresa\\PMTEC\\Serial")) == ERROR_SUCCESS)
{
// Obtiene valor del número de serie
_TCHAR pszSerial[255];
regkey.QueryValue(pszSerial, _T("Valor"), 255);

// Trabaja con el serial obtenido
...

// En general no hace falta, el destructor cierra la misma
regkey.Close();
}


Saludos
Cholo Lennon
Salta, ARG

Preguntas similares