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.
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!!!
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.
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!!
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.
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!
¿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.
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.
No es mirar el foro
Es leer el post, que sólo tiene 3 líneas.
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.
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.
Dennis Ritchie. Padre de C y cocreador de UNIX.
R.I.P.
Ya me parecía
Hola, eso para mi ya es volar muy alto, suerte con tus cambios.
Saludos.
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.
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