Hola a todos!
5? duda que publico hoy xD
Mi duda es esa, como hago para que mi .exe se agregue a los programas que se ejecutan cuando la PC se prende?
Osea, sin que nadie le diga que se prenda manualmente, la PC automaticamente lo ejecuta.
Espero que me entiendan :)
Desde ya muchisimas gracias!
Saludos!
Ejecutar. o presiona las teclas Win sin soltarla presiona R, saldra la ventana de Ejecutar comando. escribe esto msconfig y dale a enter
ahi estan todos los programas que se ejecutan al iniciar la pc, agrega el tuyo y listo.
Metodo 2 y es el mejor, buscate un programa llamado "Timeup utilities 2008" lo instalas lo ejecutas y das click en la opcion, "Tuneup Startup Manager" y ahi buscas tu programa y lo seleccionas como inicio automatico.
Si si, de esa manera lo se. Pero obviamente quiero que a todas las personas que lo usen les pase esto (O tengan la opciones para activarlo o desactivarlo).
No puedo ir por todas las PCs del mundo cambiandoles eso xD
Una forma automatica no hay?
Tienes que agregar una entrada al registro de windows en donde se inician los programas al arrancar el equipo (realmente es al iniciar la sesi?n). Para ello solo se me ocurre usando el execute_shell();
El c?digo ser?a as?:
[gml]
execute_shell("reg"," add HKLM\Software\Microsoft\Windows\CurrentVersion\Run /v nombre_de_la_entrada /d 'c:\hubicaci?n\del\programa.exe'");
[/gml]
Aparecer? por medio segundo una pantalla negra que es la CMD de windows, pero es la ?nica forma que se me ocurre... y claro, lo prob? y funciona :P
No tienes y no deberias por ningun motivo modificar el Regedit si no lo conoces bien.
mira esta ruta: C:\Documents and Settings\All Users\Men? Inicio\Programas\Inicio
Todo acceso directo, exe, o cualquier programa que se guarde ahi se ejecutara al iniciar window.
Cita de: elviskelley en Octubre 25, 2011, 06:04:30 AM
No tienes y no deberias por ningun motivo modificar el Regedit si no lo conoces bien.
mira esta ruta: C:\Documents and Settings\All Users\Men? Inicio\Programas\Inicio
Todo acceso directo, exe, o cualquier programa que se guarde ahi se ejecutara al iniciar window.
En mi PC no funciona asi :/
Estoy en la ruta: H:\Documents and Settings\All Users\Men? Inicio\Programas\Inicio y solo tengo un acceso directo llamado: HP Digital Imaging Monitor (Que es de la impresora) y que no se inicia con la PC.
Igualmente faltarian todos los demas programas que se ejecutan.
Cita de: knd144 en Octubre 25, 2011, 05:43:19 AM
Tienes que agregar una entrada al registro de windows en donde se inician los programas al arrancar el equipo (realmente es al iniciar la sesi?n). Para ello solo se me ocurre usando el execute_shell();
El c?digo ser?a as?:
[gml]
execute_shell("reg"," add HKLM\Software\Microsoft\Windows\CurrentVersion\Run /v nombre_de_la_entrada /d 'c:\hubicaci?n\del\programa.exe'");
[/gml]
Aparecer? por medio segundo una pantalla negra que es la CMD de windows, pero es la ?nica forma que se me ocurre... y claro, lo prob? y funciona :P
Para "deshacer" esto como seria? Tendria que borrar esa linea del registro, o se podria sacarlo del msconfig o del "Tuneup Utilities"? Porque tambien lo que se puede hacer es una opcion para ponerlo o sacarlo del autorun de la PC en el juego mismo.
Elvis, he hecho esto muuuuuchas veces, no te imaginas para qu? XD; pero bueno, mientras no se metan con otras cosas ?ste m?todo no causar? problemas.
Ahora, para eliminar el registro:
[gml]
execute_shell("reg"," delete HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run /v nombre_de_la_entrada /f");[/gml]
Y listo.
Por cierto, en teor?a el tunes up no deber?a eliminarlo ya que es de uso cotidiano (cada que se inicia la PC) y si el programa al que est? ligado existe. Una forma de evitar la ejecuci?n del programa es entrar en modo seguro ;D
Te dejo un editable que hice para probar esto:
Lo unico que hace es guardar en un .ini la variable si esta encendido (Osea, si se va a auto-iniciar con Windows (Verde)) o si esta apagado (si no se va a auto-iniciar con Windows (Rojo).
Seguramente al no tener el .ini te va a salir la subimage de error del sprite, solo dale click y prendelo o apago para que cambie.
Lo que te quiero pedir es si puedes completarlo con esos codigos en donde van para que se auto-inicie cuando debe y que no cuando no debe xD
Espero que me puedas ayudar.
Desde ya muchisimas gracias!
Pues en el evento de presionar boton, si lo enciende haces que se agregue el registro, si lo apaga haces que se elimine. Como estos son comandos de Batch no habr? problema si no existe el registro o si ya existe...
[gml]
ini_open("Configuracion.ini")
if show_question("?Deseas encenderlo?") = 1
{
ini_write_real("Configuracion","Tiene",1);
execute_shell("reg"," add HKLM\Software\Microsoft\Windows\CurrentVersion\Run /v nombre_de_la_entrada /d 'c:\hubicaci?n\del\programa.exe'");
break;
}
else
{
ini_write_real("Configuracion","Tiene",0);
execute_shell("reg"," delete HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run /v nombre_de_la_entrada /f");
break;
}
ini_close()
[/gml]
Creo que as? iria todo perfecto :P
2 preguntas:
1) Porque usas "break;" en un "if"?
2) No se bien que partes del codigo que me diste debo cambiar para su correcto funcionamiento. Me podrias hacer un ejemplo para que estes seguro que funciona? Porque hice algo y me empezaron a salir un monton de "cmd"s xD
El break tu lo pusiste, yo solo respect? tu c?digo :P
Y eso va en el evento de presionar boton derecho, solo le agregu? esas 2 l?nas... mira, el editable te lo adjunto
Ah, ya recorde, es que primero le quise meter un estado medio, ni prendido ni apagado para cuando daba error, entonces usaba switch xD
Perdon xD
Pruebo y edito :D
Todavia no me dijiste cuales son los parametros que debo cambiar y por cuales los debo cambiar!
Sino no lo puedo probar :/ (No quiero cambiar algo que quizas me mande una cagada xD)
Que seria el nombre de la entrada? =O
Hay una solucion facil, mete el juego en la carpeta inicio
CitarInicio > Todos los programas > Inicio
Pero para apretar un boton en el juego y se active, no se
A esto lo use para que se autoejecute un dock que descargue
No uses execute_shell, el GM tiene funciones espec?ficas para trabajar con el registro.
http://www.comunidadgm.org/manual_GM/Registro_GML.htm
Si no me equivoco ser?a algo as?:
[gml]registry_set_root(0); // Solo para el usuario actual.
registry_set_root(1); // Para todos los usuarios del SO.
registry_write_string_ext("\Software\Microsoft\Windows\CurrentVersion\Run", "nombre_de_la_entrada", parameter_string(0));[/gml]
Ten?s que borrar una de las primeras dos l?neas seg?n como quieras que funcione.
Me podrias hacer un ejemplo? Asi no me mando ninguna macana xD
No, no tengo el Game Maker.
No deber?a ser tan jodido. Simplemente no toques ning?n valor que no sea el que crees para tu juego.
Mmm y dejarme los codigos que deberia copiar y pegar?
Porque hay parametros que debo poner que no se que poner:
[gml]registry_set_root(0); // Solo para el usuario actual.
registry_set_root(1); // Para todos los usuarios del SO.
registry_write_string_ext("\Software\Microsoft\Windows\CurrentVersion\Run", "nombre_de_la_entrada", parameter_string(0));[/gml]
Argumento 1: Esta bien asi? ("\Software\Microsoft\Windows\CurrentVersion\Run"
Argumento 2: "nombre_de_la_entrada" que pongo aca?
Argumento 3: parameter_string(0) Esto que es? Tengo que poner solo esto aqui?
Otra cuestion: Obviamente quiero que esto se pueda borrar, como seria?
Off-Topic: Felicitaciones por el ascenso a "admin" ^^
Cita de: MaanuRP en Noviembre 16, 2011, 03:05:30 AM
Mmm y dejarme los codigos que deberia copiar y pegar?
Porque hay parametros que debo poner que no se que poner:
[gml]registry_set_root(0); // Solo para el usuario actual.
registry_set_root(1); // Para todos los usuarios del SO.
registry_write_string_ext("\Software\Microsoft\Windows\CurrentVersion\Run", "nombre_de_la_entrada", parameter_string(0));[/gml]
Argumento 1: Esta bien asi? ("\Software\Microsoft\Windows\CurrentVersion\Run"
Argumento 2: "nombre_de_la_entrada" que pongo aca?
Argumento 3: parameter_string(0) Esto que es? Tengo que poner solo esto aqui?
El argumento uno tiene que ir as?. B?sicamente indica en qu? parte del registro se va a guardar el dato, y \Software\Microsoft\Windows\CurrentVersion\Run es donde se guardan directorios de programas a ejecutar cuando inicia Windows.
En el registro los datos se guardan en pares de tipo "clave" y "valor". En el segundo argumento va la clave, que es como se identifica el valor. Cada clave debe ser ?nica, as? que no pod?s poner algo gen?rico. Una posibilidad ser?a el id del juego (game_id, creo), pero debe ser algo descriptivo. Y tambi?n, pens? que es como un nombre; no debe ser demasiado largo.
Podr?as poner, si por ejemplo tu juego se llama "Super Mario", algo como "super_mario_autorun".
El tercer argumento es el valor de la entrada. Debe ser la ruta completa al ejecutable del juego, y eso es lo que parameter_string(0) devuelve?.
Cita de: MaanuRP en Noviembre 16, 2011, 03:05:30 AMOtra cuestion: Obviamente quiero que esto se pueda borrar, como seria?
No parece que el GM tenga una funci?n para hacer eso :/. Como alternativa pod?s modificar la entrada de forma que el valor quede vac?o, y dejar? de funcionar.
[gml]
registry_set_root(0); // Solo para el usuario actual.
registry_set_root(1); // Para todos los usuarios del SO.
if (registry_exists_ext(key, name)) {
registry_write_string_ext("\Software\Microsoft\Windows\CurrentVersion\Run", "nombre_de_la_entrada", "");
} else {
// La entrada no existe.
}[/gml]
Es posible que al hacer eso la entrada se borre autom?ticamente.
Por cierto, para entender mejor como funciona el registro, pod?s ir a inicio > ejecutar y escribir "regedit". Es un programita que viene con Windows y sirve para explorar y editar el registro.
Cita de: MaanuRP en Noviembre 16, 2011, 03:05:30 AMOff-Topic: Felicitaciones por el ascenso a "admin" ^^
Pff, ahora voy a tener m?s trabajo. Pero gracias :).
? En realidad no siempre. Si el usuario ejecut? el juego desde una consola de comandos, lo m?s seguro es que parameter_string(0) devuelva solo el nombre del ejecutable, sin la ruta. Si quer?s una manera de obtener la ruta completa al ejecutable que cubra ese caso, pod?s probar con este script:
[gml]var a;
a = parameter_string(0);
if (string_char_at(1, a) == ":") {
return a;
}
return working_directory + a;[/gml]
Propongo que este tema lo muevan a la FAQ, que les parece??
es una pregunta que siempre todos nos hicimos
Wadk, que bueno que ahora seas admin, felicidades!
Cita de: MaanuRP en Noviembre 16, 2011, 03:05:30 AMOtra cuestion: Obviamente quiero que esto se pueda borrar, como seria?
[/quote]
Tambi?n es posible borrarlas con "execute_shell()" usando el programa reg que viene con windows (la verdad no se si venga en todos xD) aqu? un ejemplo.
[gml]
//para el usuario actual
execute_shell("reg","delete HKCU\Software\Microsoft\Windows\CurrentVersion\Run\nombre_de_la_entrada");
//para todos los usuarios
execute_shell("reg","delete HKCM\Software\Microsoft\Windows\CurrentVersion\Run\nombre_de_la_entrada");
[/gml]
El problema es que pide confirmaci?n en teoria segun esto (http://www.computerhope.com/reg.htm) a?adiendo como argumento "/f" se deberia de forzar y no pedi confirmaci?n, otra manera de hacerlo seria creando un archivo .reg en la carpeta temporal de tu juego ejecutarlo y eliminarlo.
P.D:?Felicidades Wadk!, la verdad se tardaron en ascenderte ;).
Alguien podria hacerme un ejemplo que funcione?
Como ya dije, tengo miedo de mandarme alguna cosa mala en la PC por no saber usar esto.
Por lo que veo son solo un par de lineas, alguien que me ayude haciendo un ejemplo por favor!
h?s intentado usar una m?quina virtual?
Te digo que estos "problemas" se arreglan entrando en modo seguro y borrando manualmente el registro del S.O. o eliminando el ejecutable...
Cita de: knd144 en Noviembre 23, 2011, 03:21:47 AM
h?s intentado usar una m?quina virtual?
Te digo que estos "problemas" se arreglan entrando en modo seguro y borrando manualmente el registro del S.O. o eliminando el ejecutable...
Igual preferiria no arriesgarme, ademas me dijeron las respuestas muy seguros, no deben tener problema en hacerme un ejemplo xD
Hombre por dios, no es tan peligroso. El ?nico peligro estar?a en ponerte a borrar/crear/modificar datos a lo loco por todos lados.
?Probaste esto que puse antes?
CitarPor cierto, para entender mejor como funciona el registro, pod?s ir a inicio > ejecutar y escribir "regedit". Es un programita que viene con Windows y sirve para explorar y editar el registro.
Si ten?s tanto miedo, hac? como dice knd144 y prob? con una m?quina virtual.
Cita de: Wadk en Noviembre 23, 2011, 03:42:51 AM
Hombre por dios, no es tan peligroso. El ?nico peligro estar?a en ponerte a borrar/crear/modificar datos a lo loco por todos lados.
?Probaste esto que puse antes?
CitarPor cierto, para entender mejor como funciona el registro, pod?s ir a inicio > ejecutar y escribir "regedit". Es un programita que viene con Windows y sirve para explorar y editar el registro.
Si ten?s tanto miedo, hac? como dice knd144 y prob? con una m?quina virtual.
Es que la vez que probe hacerlo cada vez que prendia mi pc se me abrian infinidad de simbolos del sistema y se quedaba congelada, por eso no quiero intentar mas xD
Ademas con un ejemplo estoy seguro que hace lo que debe hacer, que borra lo que debe borrar, que quizas al no entender por completo esto, no lo puedo saber.
Pero bueno, si no tienen ganas no hay drama, despues probare hacerlo.
Gracias por todo, cuando lo pruebe veo si doy por solucionado el tema o debo hacer otra consulta, gracias a TODOS los que participaron con tantas respuestas xD
Hola, supongo que quieres crear algun malware o virus, es sencillo en realidad hacer lo que quieres: hay dos formas
1) editando tu mismo el registro de windows
2) con game maker (en este caso cuando el usuario ejecuta el programa, ser? el mismo programa el que modifique el registro y puede escribir una entrada que le ordene ejecutar cualquier programa incluso el mismo al inciar windows).
Hace ya muchos a?os hize un peque?o experimento que consistia en crear un software con game maker el cual hacia dos cosas:
1) creaba un archivo .bat con la orden de apagar la pc en determinado tiempo en segundos
2) creaba una entrada en el registro de windows la cual ejecutaba el archivo .bat al iniciar windows.
funciono bien, jj, pero te soy sincero preste mi pc donde tenia ese programita y no me la han regresado, tratare de recordar como lo hize y escribirte uno, o en su defecto consulta la ayuda de game maker ah? nos explica como escribir en el registro, en el indice de el archivo de ayuda busca la palabra registry y ahi tienes todo lo referete a las funciones para usarlo.
o bien si quieres hacerlo manualmente harias esto:
1)En windows te vas a inicio/ejecutar
2) en ejecutar escribes: regedit y das aceptar
3) te aparecera el editor de registro
4)vas a ver un monton de carpetas, los cambios en current user solo afectan al usuario actual, los cambios hechos en local machine afectan a todos (hagamoslo en current user por si tu programa modifica algo que pueda dejarte sin sistema, pero en si el metodo es el mismo).
5) doble click en current user, te despliega muchas carpetas
6)doble click en la carpeta software (salen mas carpteas)
7) doble click en la carpeta microsoft (salen mas carpteas)
8) doble click en la carpeta windows (salen mas carpteas)
9) doble click en la carpeta current version (salen mas carpteas)
10)doble click en la carpeta microsoft (salen mas carpteas)
11)doble click en la carpeta run (salen mas carpteas)
12) a tu derecha vas a ver algunas entradas esos son los programas que se ejecutan cuando windows inicia
13)haz click en el menu edicion/nuevo/valor alfanumerico
14) dale un nombre y das doble click en el hay un cuadr en blanco que dice
Cita de: Felicito en Noviembre 28, 2011, 10:37:46 PM
Hola, supongo que quieres crear algun malware o virus
Como ya lo dije en todos los posts que hice:
Cita de: MaanuRP en Noviembre 26, 2011, 09:48:05 AM
Cita de: Wadk en Noviembre 26, 2011, 04:27:33 AM
?Est?s haciendo un virus, peque?o malandr?n!
Jajajajaj nono, como explique en otro post, se me dio la idea de hacer como un Parental Control, la saque porque hace poco descubrimos que las PCs del colegio tienen un sistema que sacan screen cada 5 minutos. Y con mis amigos dijimos: Como seria si nos sacara fotos cada 5 minutos?
Entonces como soy el unico que sabe programar, y tengo la herramienta mas grande que es esta comunidad, estoy intentando lo que deseamos ^^
Jojojo
Cita de: MaanuRP en Noviembre 28, 2011, 11:06:08 PM
Jajajajaj nono, como explique en otro post, se me dio la idea de hacer como un Parental Control, la saque porque hace poco descubrimos que las PCs del colegio tienen un sistema que sacan screen cada 5 minutos. Y con mis amigos dijimos: Como seria si nos sacara fotos cada 5 minutos?
Entonces como soy el unico que sabe programar, y tengo la herramienta mas grande que es esta comunidad, estoy intentando lo que deseamos ^^
Yo quiero uno que sace una foto de pantalla cada 5 minutos a ver cuantos estan en facebook :D
Viendo tus ultimas tres preguntas:
- Esconder mi juego
- Manejar camara web
- Hacer que se inicie al prender la pc
Da algo que sospechar... :-X
Jajaja
Cita de: Mgbu en Noviembre 29, 2011, 01:44:58 PM
Jojojo
Yo quiero uno que sace una foto de pantalla cada 5 minutos a ver cuantos estan en facebook :D
Viendo tus ultimas tres preguntas:
- Esconder mi juego
- Manejar camara web
- Hacer que se inicie al prender la pc
Da algo que sospechar... :-X
Jajaja
En las computadoras que nos dieron ya tenemos un programa que hace eso, y ya hemos agarrado a mas de uno en cosas raras xD
Por eso estoy buscando que haga lo mismo pero que saque fotos de la camara web, imaginas la cara de tus amigos con las manos en la masa? xD