/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

modificar el registro de windows en c++

 
      Índice del Foro elrincondelc.com -> C/C++ en General
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
juanse003



Registrado: 22 Ago 2007
Mensajes: 6
Ubicación: Extremadura, ESPAÑA

MensajePublicado: 11/10/2007 6:02 am
Título: modificar el registro de windows en c++

hola, es necesario conocer y usar la api de windows para modificar el registro de windows?Como se hace, para borrar o crear entradas de registro?Por ejemplo de programas que inician ka computadoras o para interrumpir servicios
_________________
No parar hasta conquistar
Volver arriba
daltomi



Registrado: 28 Abr 2007
Mensajes: 117
Ubicación: Argentina

MensajePublicado: 11/10/2007 7:54 am
Título: Ejemplo para comenzar.

Tal vez el mejor ejemplo que pueda darte sería la solución que desarrollé para un problema de una persona en otro sitio, no colocaré aquí su "nick" ya que puede haber coincidencias en éste sitio.

Cita:

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


Aquí la solución:

Código:
//Declaración
/*Retorna cantidad de caracteres, y valor de la cadena del RS como parámetro/
long RegApp(LPTSTR lpRt);


Código:

long RegApp(LPTSTR lpRt)
{
   const DWORD dwcSize = 256 + 1;

   //Tu valor
   LPCTSTR lpcVal = "MyValue";

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

 
   char lpPath[dwcSize];

   lpPath[dwcSize] = '\0';
   

   HKEY hk;
   long lng = 0;

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

   /*Aquí notamos si existe o no existe.*/
   // Si no existe(lng != 0), escribimos.
   // Si existe(lng==0), 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:

char psPath[256];

long lsize = RegApp(psPath);


Como puedes observar, el conjunto de funciones para manejar el RS(Registro del Sistema), por cierto aquí no hice uso de todas, tienen semejanza a las funciones para el manejo de archivos: creación / apertura, escritura/ lectura y cierre.

Saludos.
Volver arriba
      Índice del Foro elrincondelc.com -> C/C++ en General
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com