MULTIMEDIA, Video digital, Grabación, Diseño gráfico, Diseño web, Programación > Webmasters - Diseño Web - Programación - Diseño gráfico
Registro de windows en C
intropedro:
Ok, si que parece una mejor opcion la que me as dicho, voy a ver si me pongo a programar.
Saludos
intropedro:
Hola, e estao mirando funciones que lean el valor de una clave del registro y e encontrao RegGetValue pero me pone Requirements Server: Requires Windows Server 2003 SP1, y e provado y no me la reconoce (tengo windows XP). No se que funcion utilizar, ¿alguna recomendacion?
Saludos
ALP:
La función que debes utilizar para recoger un valor del registro es RegQueryValueEx()
Un saludo.
intropedro:
Hola, he estado un poco ocupado terminado un trabajo pendiente pero ya me e puesto manos a la obra.
He hechoel codigo siguiente y cuando hay un dato antes crea una clave de copia de seguridad pero el contenido de la clave no se me escribe bien, no se si cogo mal el dato, o lo escribo mal?
--- Código: ---HKEY key;
LONG ret_key;
DWORD tam, Disposition, BufferSize;
char abrir[128];
char *salvar_clave;
/* CREAMOS LA EXTENSION */
ret_key = RegCreateKeyEx(HKEY_CLASSES_ROOT, extension, 0, "",
REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS,
NULL, &key, &Disposition);
if (ret_key == ERROR_SUCCESS) {
BufferSize = 12;//12Bytes=12caracteres
salvar_clave = NULL;
ret_key = RegQueryValueEx(key, "", NULL, NULL,(LPBYTE) salvar_clave, &BufferSize );
if(ret_key==ERROR_SUCCESS){//Hay que guardar dato
tam = lstrlen(salvar_clave);
RegSetValueEx(key, "copia_predefinido", 0, REG_SZ, (LPBYTE) salvar_clave, tam);
printf("sdsdsdsffdf\n");
}
else{printf("Mal pedro\n");}
tam = lstrlen(programa);
ret_key = RegSetValueEx(key, "", 0, REG_SZ, (LPBYTE)programa, tam);
if (ret_key != ERROR_SUCCESS) {
/* error !!! no se ha podido asignar el valor EXTENSION*/
return 1;
}
RegCloseKey(key);
} else {
/* error !!! no se ha podido crear la entrada en el registro EXTENSION*/
return 2;
}
--- Fin del código ---
Saludos
ALP:
A simple vista no parece que haya nada mal, esxepto que en la función RegQueryValueEx(), presupones que el contenido de la entrada predeterminada tiene 12 bytes. Si el contenido tiene más caracteres, el valor devuelto es ERROR_MORE_DATA, y en la variable BufferSize te almacena el número de bytes que tiene la cadena en cuestión. Comprueba e imprime el valor devuelto por la función.
En el archivo winerror.h puedes encontrar las definiciones de los errores.
Un saludo.
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa