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

(1/4) > >>

intropedro:
Hola, quiero hacer un programa en C para que me asocie una extension que le indique para que la abra con el programa que le diga, para ello me an dicho que tengo que utilizar el registro de windows.

¿Alguien es este foro sabe programar con el registro de windows?

Saludos

ALP:
Hola.

Para trastear el registro del sistema dispones de múltiples funciones. Las puedes encontrar aquí:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/registry_functions.asp

Es fácil utilizarlas. Lo fundamental es que llames a RegOpenKeyEx() para abrir una clave existente, o RegCreateKeyEx() para crearla, y al finalizar, debes llamar a RegCloseKey().

Verás que también  hay funciones de la shell, como AssocCreate, si entras en este enlace, y te vas a la definición del interfaz IQueryAssociations, encontrarás un enlace en el que te explica cómo crear una asociación de un tipo de fichero. Lo tienes aquí:
http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/programmersguide/shell_basics/shell_basics_extending/fileassociations/fileassoc.asp


Un saludo.

intropedro:
Ok, muchas gracias por los links, mi ingles es un poco malo pero voy a ver si voy entendiendo las cosas. He estedo leyendo la parte de asocias a la extension el programa y  he visto que tengo que añadir una entrada en HKEY_CLASSES_ROOT para la extension y otra para el programa (ya que los programas no los tendre instalados) pero querria saber donde estan los registros de las extensiones, solo tengo que poner HKEY_CLASSES_ROOT o hay que poner algo mas?

Saludos

ALP:
Bueno, veamos....
Creo que no tienes claro cómo funciona el registro en este tema. Yo tampoco lo conozco a fondo, por lo que no tomes como definitivo lo que sigue.

Vamos a investigar un poco el registro sel sistema.

Con el regedit.exe, abro HKEY_CLASES_ROOT.
Me voy a la extensión [].cpp[/i]. Encuentro que en el valor predeterminado tiene almacenada la cadena DevCpp.cpp.
Bien, sigo hacia abajo, paso las extensiones hasta que encuentro la cadena DevCpp.cpp.

Dentro tiene varias entradas, pero la que nos interesa está en shell -> open -> command, que contiene la cadena C:\Dev-Cpp\DevCpp.exe "%1"

Todo esto nos indica que los ficheros con la extensión cpp están "registrados" en la entrada DevCpp.cpp. En esta entrada, la clave indicada (command), nos indica que el sistema ejecutará la orden C:\Dev-Cpp\DevCpp.exe "%1", donde "%1" se refiere al primer parámetro (en este caso el nombre del fichero .cpp al que haces un doble click), y el que esté encerrado entre comillas es para que permita nombres largos con espacios.

Hasta aquí, lo que podemos apreciar a simple vista. Yo, lo que haría es:
1.- Aprender el funcionamiento correcto de la asignación de extensiones, sin entrar en programación, aunque lo más probable es que estas cosas las encuentres en el MSDN.
2.- Hacer pruebas "a mano"
3.- Una vez que lo tienes claro, haces el programa.

Un saludo.

intropedro:
OK, Pos voy a ver si lo ago a mano una asignacion de extensiones (no creo que tenga problemas a mano) y luego me pongo a programar.

Muchas gracias por tu ayuda, me cuesta empezar con esto y como casi todo que encuentro esta en ingles y mi ingles es muy malo me cuesta demasiado y como hay muy poca gente que sabe de esto..

Saludos

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa