Anuncios Google

Como modificar el registro de Windows [SOLUCIONADO]

Hola, muy buenas. Estoy haciendo una aplicacion en C y me gustaria que se cargase al inicio y para eso tengo que modificar el registro. Ya se que clave he de modificar pero no se como hacer que el programa lo modifique automaticamente. Si me pueden ayudar se lo agradeceria mucho.

PD: Me interesaria mas en C (no C++) pero si solo saben en C++ pues tambien me vale. Gracias por adelantado.


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de gregocarvajal

SOLUCIONADO

Muchas gracias a todos por ayudarme. Ya lo he conseguido. lo hice un poco chapucero pero encontre una manera sencilla de hacerlo:

system("reg add HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run /v <nombre del valor>  /d <ruta del archivo>");

Esto lo que hace es llamar al sistema con el comando "reg". Este comando es un comando de Windows que se puede ejecutar en un .BAT

De todas maneras miraré los tutoriales que me habeis recomendado a ver si se puede simplificar el laaaaargo codigo que esto genera.

MUCHAS GRACIAS A TODOS Y UN SALUDO!!!

Imagen de pspgorrister

Has tenido buen acierto.

Es una buena solución la de usar system, para lo que tú lo vas a usar, yo lo dejaría así. De todas formas si en futuros proyectos tienes que trastear el registro modificando claves, introduciendo valores, etc. Necesitarás usar la Win API, ya que a través de system no tendrás una gestión de errores por saber si una clave existe o no, de qué tipo es etc.

Sobre "laaargo código", es sólo llamar a un par de funciones, y definir las varibale. si eso te parece largo, mejor deja el C/C++ y pásate otros lenguajes más light. creo que esos no son para ti. xDDDD


LuaDiE: Crea en Lua sin teclear código. Compatible HM7, HMv2, LuaPlayer, LuaDEV y PGE.

Imagen de gregocarvajal

Lo del laaargo codigo

Lo de largo codigo lo digo por la extensa linea de codigo de system, pero a mi C me gusta bastante. Lo estoy estudiando por mi cuenta y me va bastante bien. Lo que no me gusta son las lineas demasiado largas, por eso lo decia. No por otra cosa XD

Aprovecho para agradecer de nuevo a todos el apoyo que me habeis dado. MUCHAS GRACIAS A TODOS!!

Imagen de pspgorrister

Tienes que hacer uso de la

Tienes que hacer uso de la API de windows, son unas cuantas funciones, que una vez la usas no tiene más misterio: RegOpenKeyEx(), RegSetValuex()...

Te dejo un post interesante en un foro oficial de microsoft en la que también comenta un código para editar el registro con C++:

http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thre...

Sabiendo el nombre de las funciones y rezándole a San Google un poco, no tendrás problemas en encontrar muchísimos samples.

Un saludo.

 


LuaDiE: Crea en Lua sin teclear código. Compatible HM7, HMv2, LuaPlayer, LuaDEV y PGE.

Imagen de Loopin

En

En regedit:

Equipo\HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

Click derecho en el panel derecho, Nuevo -> Valor de cadena. Le das un nombre, y click derecho Modificar.. y escribes la ruta del programa a ejecutar.

Yo tengo varios programas que se ejecutan al arrancar, los puse de este modo y me funcionan bien, al menos en Win 7, pero creo recordar que en XP era la misma ruta.

Un saludo!


Imagen de pspgorrister

¿Hola?

Estamos en el foro de PROGRAMACIÓN. Estoy seguro que el creador del post conoce el regedit. Para postear que use el regedit, cuando el quiere hacerlo a través de C ó C++, mejor no no decir nada.

No te lo digo con ánimo de ofender, pero tu respuesta no tiene sentido.

Un saludo.


LuaDiE: Crea en Lua sin teclear código. Compatible HM7, HMv2, LuaPlayer, LuaDEV y PGE.

Imagen de Loopin

Pido 10 trillones de

Pido 10 trillones de disculpas si hace falta. Ni idea de en que foro se publican las respuestas, nunca lo miro, y desconozco el nivel del programador.

En fin, mejor no compartir por poco que sea, ya que parece que la elite se ofende.

Un saludo.


Imagen de Monty - Calabato64

No es mirar el foro

Es leer el post, que sólo tiene 3 líneas.

Imagen de the dragon lives

Fin del off-topic

No creo que tu comentario aporte nada al tema del hilo ni al inicio de la discusión entre ambos usuarios, dicho esto me gustaría no ver más off-topic sobre el asunto y si ambos usuarios tienen algo que decirse que lo hagan de modo privado (dado que la posible discusión seria un off-topic en este hilo, como tu comentario).

Saludos.

Imagen de joserc87

Pues no se...

Pero según he leido en internet es usando funciones de la windows.h del tipo RegOpenKeyEx(...), para abrirlo, luego obtienes la clave, la cierras con RegCloseKey(hKey) etc. La verdad es que se ve un poco complicado.

Aquí te explican un poco como se usan las funciones.

http://www.aspfree.com/c/a/Windows-Scripting/Working-with-the-Windows-Registry-in-C-plus-plus/

Pone que está en C++ pero en realidad es C. Si no te sirve siempre puedes buscar en Google "Windows registry programming". Ojalá te pudiese ayudar más, pero nunca me he puesto con el registro.

Me parece un tema muy muy interesante. Sería bestial que cuando sepas más nos enseñes como los has hecho con un tutorial o simplemente con un comentario en este post.

 

 


Be pointer my friend...

Dennis Ritchie. Padre de C y cocreador de UNIX.

R.I.P.

 

Imagen de rafaourense

Ya me parecía

Hola, eso para mi ya es volar muy alto, suerte con tus cambios.

Saludos.

Imagen de rafaourense

No se si te refieres a esto:

Hola, no se si te refieres a esto: das con el botón derecho sobre MI PC- abajo a Propiedades- Opciones avanzadas (dentro)- Inicio y recuperación- Ventana Inicio Sistema la pestaña Editar.

Ojo que te puedes cargar todo el sistema de inicio.

Saludos.

Imagen de gregocarvajal

No es eso

Yo me refiero a que vas a Inicio -> Ejecutar , aqui pones "regedit" y puedes modificar todo el registro de Windows. Pues yo quiero añadir una entrada aqui. Ya se exactamente que entrada es y tal. Incluso lo se hacer manualmente pero lo que quiero es que se haga automaticamente. He oido que hay que meterse con las variables del sistema operativo o algo de eso.

PD: Ya se lo peligroso que es modificar el registro y que me puedo cargar el sistema, pero no me importa porque primero lo probare en una maquina virtual

Gracias de todos modos

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.