juanse003
Registrado: 22 Ago 2007 Mensajes: 6 Ubicación: Extremadura, ESPAÑA
| Publicado: 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 |
|
daltomi
Registrado: 28 Abr 2007 Mensajes: 117 Ubicación: Argentina
| Publicado: 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. |
|