Home   Artículos   Recursos   Foros   
Artíclos recientes publicados en Latindevelopers:

Visual C++: NSDoubleEdit: Un control para el manejo de números decimales en Visual C++.
Visual C++: Implementando una Calculadora en Visual C++
Visual C++: CCommandLine: Una clase para el uso de la linea de comando
Visual C++: Una clase para el manejo del Registro


Escribir datos en el Registro de Windows (MFC)

Aqui programadores en la plataforma Win32 con Visual C++ de Microsoft...

Moderador: latindeveloper

Escribir datos en el Registro de Windows (MFC)

Notapor Dark_Loki el Mié Ago 22, 2007 5:20 pm

Como indica en el titulo, lo que quiero es que, cuando inicie mi aplicación, inserte la ruta donde se encuentra el ejecutable en el registro:
HKEY_CURRENT_USER//Software//Miaply
(AB)Myvalue = Que ponga dentro la ruta del programa

No se si me e explicado bien,
cuando inicie mi aplicacion, lo que tiene q acer es escrivir en el registro, la ruta exacta donde se encuentra
la clave es: HKEY_CURRENT_USER//Software//Miaply
la value: MyValue
Dark_Loki
Usuario Activo
Usuario Activo
 
Mensajes: 22
Registrado: Mar Ago 07, 2007 2:33 pm

Notapor daltomi el Jue Ago 23, 2007 6:51 pm

Hace unos meses desarrollé una clase para el tratamiento del registro de Windows para un proyecto específico, pero puedes modificarlo para que se adapte a lo que necesites. Está desarrollado en Visual C++ v.6.0 y utilizo la API Win32.
RegisterClass.zip
Saludos.
daltomi
Novato
Novato
 
Mensajes: 2
Registrado: Mar Jun 05, 2007 2:19 am

Notapor Dark_Loki el Vie Ago 24, 2007 12:28 pm

daltomi si me explicas un poco el funcionamiento de tu class te lo agradeceria.

apenas llevo 1 mes con el VC++ y como q un no entiendo mu bien todo.
Dark_Loki
Usuario Activo
Usuario Activo
 
Mensajes: 22
Registrado: Mar Ago 07, 2007 2:33 pm

Notapor daltomi el Vie Ago 24, 2007 8:45 pm

Ok, en ese caso me es más fácil darte la solución a tú problema, que explicar toda la clase :)
Código: Seleccionar todo
//Declaración
long RegApp(LPTSTR);


Código: Seleccionar todo
long RegApp(LPTSTR lpRt)
{

   //Tu valor
   LPCTSTR lpcVal = "MyValue";

   // Sub key
   LPCTSTR lpcSof = "Software\\Miaply";

   const DWORD dwcSize = 256;
   char lpPath[dwcSize] ={0};
   
   HKEY hk;
   long lng = 0;

   //Abrimos.
   lng = RegOpenKey(HKEY_CURRENT_USER,lpcSof,&hk);

   //Aqui notamos si existe o no existe.
   // Si no existe, escribimos.
   // Si existe, leemos.
   if(lng > 0)
   {

      RegCreateKey(HKEY_CURRENT_USER,lpcSof,&hk);

      //Obtiene la dirección del programa.
      GetCurrentDirectory(dwcSize,lpPath);

      RegSetValueEx(hk,lpcVal,NULL,REG_SZ,(const BYTE*)lpPath,dwcSize);

      RegCloseKey(hk);

      return 0L;
   }else{
         DWORD dwSize = dwcSize;

         DWORD dwType = REG_SZ;

         RegQueryValueEx(hk,lpcVal,0,&dwType,(BYTE*)lpPath,&dwSize);
         
         RegCloseKey(hk);

         strcpy(lpRt,lpPath);

         return (long)dwSize;
   }
   return 0L;
}


Ejemplo de uso:
Código: Seleccionar todo
char lpRet[256];
long lng;

l = RegApp(lpRet);


No sabría decirte como implementarla dentro de un proyecto del tipo MFC ya que no desarrollo en base a esa API, tal vez alguien con más en experiencia en la MFC pueda ayudarte. El ejemplo de uso que escribí fue utilizando un proyecto tipo Win32.

Aclaro que lo desarrollé en Window Me. No se que pasará en XP.

Tengo entendido que MAX_PATH es de 256, por lo tanto he declarado a dwcSize con un valor de 256. Si quieres puedes aumentar este valor para direcciónes más largas, pero no lo he probado en ese aspecto.En tal caso, lpRet deberá ir a la par con el valor de dwcSize.

Saludos. :)
daltomi
Novato
Novato
 
Mensajes: 2
Registrado: Mar Jun 05, 2007 2:19 am

Re: Escribir datos en el Registro de Windows (MFC)

Notapor ivancp el Lun Mar 03, 2008 4:26 pm

Se acaba de publicar un articulo que trata sobre el manejo del registro de windows con una clase:

Para mas detalles visitar:

Manejo del Registro en Visual C++
ivancp
Programador Experimentado
Programador Experimentado
 
Mensajes: 301
Registrado: Jue Sep 06, 2007 12:57 pm


Volver a Visual C++

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados

cron