pc auto restart
pc auto restart
hola amigos , ando buscando algun ejemplo de algun script que me haga auto restart la pc a una determinada hora , 1 dia a la semana ...
la idea es que la computadora por ejemplo ,todos los domingos a las 2 de la madrugada haga un restart , osea qu se apage y se prenda de nuevo , como es especie de una pc server y yo tengo dos programas que luego se abririan solos , la idea es que se refresque todas las semanas .. alguien tendra algun script asi , yo tengo usando windows xp SP3
muchas gracias
la idea es que la computadora por ejemplo ,todos los domingos a las 2 de la madrugada haga un restart , osea qu se apage y se prenda de nuevo , como es especie de una pc server y yo tengo dos programas que luego se abririan solos , la idea es que se refresque todas las semanas .. alguien tendra algun script asi , yo tengo usando windows xp SP3
muchas gracias
- arkcrew
- Profesional del Autoit
- Mensajes: 506
- Registrado: 28 Sep 2009, 19:17
- Ubicación: Granada, España
- Contactar:
Re: pc auto restart
Buenas,
Realmente lo que pides es muy facilito, o bien programas una tarea de windows, que una vez a la semana lance tu script, o bien te programas un script que tenga un timer o que compruebe cada 24 horas la fecha y cuando la diferencia sea de 7 días, que reinicie. Tienes una funcion de autoit que hace eso, Shutdown(2). Con eso, si no tienes un usuario y una clave en la sesion, el ordenador se debe reiniciar sin ningún problema.
Espero que te sirva!
Saludos!
Realmente lo que pides es muy facilito, o bien programas una tarea de windows, que una vez a la semana lance tu script, o bien te programas un script que tenga un timer o que compruebe cada 24 horas la fecha y cuando la diferencia sea de 7 días, que reinicie. Tienes una funcion de autoit que hace eso, Shutdown(2). Con eso, si no tienes un usuario y una clave en la sesion, el ordenador se debe reiniciar sin ningún problema.
Espero que te sirva!
Saludos!
ArkCrew
http://www.nodluna.blogspot.com
http://www.nodluna.blogspot.com
Re: pc auto restart
jajja facilito para ti que sabes ... yo tengo que empesar a decifrar cada cosa que me comentastes
- arkcrew
- Profesional del Autoit
- Mensajes: 506
- Registrado: 28 Sep 2009, 19:17
- Ubicación: Granada, España
- Contactar:
Re: pc auto restart
Tranqui, si eso son 6 líneas mal contadas, explicame claro y preciso que necesitas y cuando se ejecuta y te soy más claro en las explicaciones!
Saludos!
Saludos!
ArkCrew
http://www.nodluna.blogspot.com
http://www.nodluna.blogspot.com
Re: pc auto restart
Creo que es mejor pasar 6 que 2.
podrias hacer algo asi.
saludos
podrias hacer algo asi.
Código: Seleccionar todo
while True
if @WDAY=1 then Shutdown(6)
sleep(1000) ; Un segundo
WEnd
- ............................................
......................................
Re: pc auto restart
OK dejame explicar mejor , tengo una pc servidor , que me gustaria que se refrescara cada semana , por ejemplo los domingos a las 2 de la madrugada por decir una hora exacta , entonces ya puse en starup de windows los dos programas que cuando windows reicie , se abran automaticos , ahora eso lo que quiero que todos los domingos , la pc se agaque , se prenda pa que refresque memoria ,osea que reinicie ... trate de hacerlo con el windows mismo , pero me da un error , por eso se me ocurrio si autoit pudiera hacer ese trabajito ...
otra cosa este script de autoit donde lo pondria , tiene que estar siempre ejecutado verdad ?
otra cosa esta pc server , nunca se apaga , ya que tiene un backup de bateria , por si pasa algo con la electricidad ella no se afecte y no se agaque
otra cosa este script de autoit donde lo pondria , tiene que estar siempre ejecutado verdad ?
otra cosa esta pc server , nunca se apaga , ya que tiene un backup de bateria , por si pasa algo con la electricidad ella no se afecte y no se agaque
- Chefito
- Profesional del Autoit
- Mensajes: 2035
- Registrado: 21 Feb 2008, 18:42
- Ubicación: Albacete/Cuenca (España)
Re: pc auto restart
Pues lo que pides es justo el código que te ha puesto Dany.
Si lo quieres ha las dos de la madrugada, pues le añades otra condición y ya está .
Por cierto, aunque un segundo no es mucho, en tu caso no hace falta llamarlo cada segundo. Le he puesto que lo llame cada minuto, aunque se podría aumentar mucho más, por ejemplo cada 30 minutos....e incluso cada hora. Por eso le he puesto un >=2 (aunque le podría haber puesto para simplificar >1, pero lo anterior queda más claro), por si quieres hacer el sleep muuuuuuuuuyyyy largo jajajaja .
Te he dicho lo anterior porque he supuesto que te da igual reiniciar el servidor a las 2, que a las 3, que a las 4 de la madrugada .
Saludos.
Si lo quieres ha las dos de la madrugada, pues le añades otra condición y ya está .
Código: Seleccionar todo
while True
if @WDAY=1 and @hour>=2 then Shutdown(6)
sleep(60000) ; Un minuto
WEnd
Te he dicho lo anterior porque he supuesto que te da igual reiniciar el servidor a las 2, que a las 3, que a las 4 de la madrugada .
Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Re: pc auto restart
pero hay cosas que no me quedan claras , una de ella es cuando dices que lo pusistes pa que lo llame cada minuto , yo no quiero que se reinicie varias veces , solo una sola ves cada domingo , por ejemplo ahora este domingo 24 , se reinice en la madrugada , y luego ya no hasta el proximo domingo y asi sucesivamente , lo puse en la madrugada porque es cuando no se usaria la pc , asi no afecta cuando reinicie ...
otra duda , el script lo hecho andar y nada mas , o tengo que dejarlo en algun lugar en espacifico ?
otra cosa , yo tengo que estar llamando ese script cada semana , o solo cuando reinicie ahi estara ya listo para que vuelva a reiniciar la siguiente semana ?
otra duda , el script lo hecho andar y nada mas , o tengo que dejarlo en algun lugar en espacifico ?
otra cosa , yo tengo que estar llamando ese script cada semana , o solo cuando reinicie ahi estara ya listo para que vuelva a reiniciar la siguiente semana ?
Re: pc auto restart
el codigo de chefito esta bien solo que agrega tambien los minutos sino el pc se reiniciara hasta que sean las 3 am jajajajaja
lo de el minuto es para el consumo del cpu.
para que quede mejor deberías agregarle un startup para que se inicio solo después del reinicio.
saludos
lo de el minuto es para el consumo del cpu.
Código: Seleccionar todo
while True
if @WDAY=1 and @hour>=2 and @MIN=00 then Shutdown(6)
sleep(60000) ; Un minuto
WEnd
para que quede mejor deberías agregarle un startup para que se inicio solo después del reinicio.
saludos
- ............................................
......................................
- Chefito
- Profesional del Autoit
- Mensajes: 2035
- Registrado: 21 Feb 2008, 18:42
- Ubicación: Albacete/Cuenca (España)
Re: pc auto restart
Por que dices esto? Error, el código que yo te dejé va bien. Entra en tal que la hora sea igual a 2. Mira la condición: @hour>=2. Para que se cumpla la hora debe ser mayor o igual a 2. Si la hora es 2, es igual, o sea que la condición se cumple .Dany escribió:el codigo de chefito esta bien solo que agrega tambien los minutos sino el pc se reiniciara hasta que sean las 3 am jajajajaja
Tu condición es la que puede inducir a error al script si le aumenta el tiempo de parada aunque solamente sea un minuto y un segundo. Hay que tener mucho cuidado con poner a veces un simple igual en las condiciones. En este caso no va a pasar nunca porque es justo un minuto lo que se para el script. Pero, y si le quiere aumentar el tiempo?.
Ejemplo, imagina que quieres ejecutar el script cada dos minutos en vez de cada minuto.Imagina que el script se ejecuta justamente en el minuto 59. Si se ejecuta cada dos minutos, nunca va a comprobar el minuto 00, ya que del 59 siempre va a saltar al 01 .
Voy a ajustar más . Imagina que en vez de sleep(60000) le pones un segundo más, sleep(61000). Incluso con un segundo más puede fallar....aunque es muy muy muy difícil, puede. Porque por alguna casualidad llega a pararse en esta hora el domingo, 01:59:59 y ya la hemos liado ese domingo jajajajaja, porque cuando pase esa parada de un minuto y un segundo, la próxima comprobación será a las 02:01:00. O sea, que se ha saltado el minuto 00. O sea, que la condición de @min=0 no se ha cumplido .
Como se soluciona esto? Pues poniendo un mayor, @min>=0. Pero en este caso, en el caso de minuto 00, poner esto y no poner nada es lo mismo. No se necesita esta condición para nada, ya que cuando llege al minuto 00 la hora ya se habrá cambiado a 2 y con esta es suficiente.
Pero os voy a facilitar las cosas, y os voy a comentar otra técnica que se me ocurrió hacer a mí una vez . Si os ponéis a pensar, las horas, minutos y segundos son grupos de números de dos dígitos normalmente separados por dos puntos. Pues juntando todos los números de la hora, forman un simple número, que se puede comparar con otro rápida y fácilmente . Por supuesto esto solo puede hacerse en formato 24 horas, pero en su día comprobé que la macro de autoit @hour, te daba la hora en este formato aunque le cambiases la configuración de la hora en windows (lo comprobé en winxp).
Para aclararnos más, voy a poner un ejemplo:
Queremos comparar cualquier hora con las 2 de la madrugada (02:00:00). El número resultante quitando los dos puntos es 020000. Como es un número podemos obviar los ceros de la izquierda (20000). Este sería el número resultante con hora, minutos y segundos. Si quieres solamente comparar horas y minutos, pues sería 200.
Vale, ahora realizamos esto
Código: Seleccionar todo
$hora=@hour & @min & @sec
Código: Seleccionar todo
$hora=@hour & @min
Indicar que estas macros tienen tipo string (texto), pero al hacer operaciones con números, autoit transforma su tipo automáticamente (o para hacerlo totalmente bien, simplemente haces un number($hora) y le cambias el tipo a numérico).
También se podría comparar en tipo string sin problema, pero en este caso las cadenas tendrían que ir enteras: if $hora>="020000" o if $hora>="0200".
Espero que os haya resultado algo interesante todo este rollazo .
Pero como dije en el post anterior, yo me sigo inclinado por poner que se ejecute cada hora en vez de cada minuto, en este caso.
Respecto al tema de iniciar el script siempre que se inicie el windows, en windows no server que son con los que trabajo yo, se puede utilizar varias técnicas: programar una tarea, meterlo en el inicio, introducirlo en la clave del registro run....... Windows server supongo que tenga también estas posibilidades, pero apenas he trabajado con este tipo de servidores, asi que no aseguro nada .
Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Re: pc auto restart
chefito lo que quiero decir que el tu código en caso de que se iniciase con windows reiniciaría la computadora sin parar hasta que @wday cambie.
while True
if @WDAY=1 and @hour>=2 then Shutdown(6)
sleep(60000) ; Un minuto
WEnd
saludos bro
while True
if @WDAY=1 and @hour>=2 then Shutdown(6)
sleep(60000) ; Un minuto
WEnd
saludos bro
- ............................................
......................................
- Chefito
- Profesional del Autoit
- Mensajes: 2035
- Registrado: 21 Feb 2008, 18:42
- Ubicación: Albacete/Cuenca (España)
Re: pc auto restart
Jajajaja, tienes toda la razon. Se me paso que al reiniciar se cargaria de nuevo . Lo siento por el fallo.
Pues para corregir esto se deberia poner otro valor en la condicion que nos indicase que ya ha sido reiniciado ese domingo. Podria ser la creacion de un archivo o la creacion de una clave en windows. Ademas de las condiciones ya dadas, se pondria otra que comprobase si existe ese archivo o esa clave de registro (o varia un valor en nuestra clave de registro). Si existe no se reinicia, pero si no existe se reinicia.
Tendriamos que meter una condicion que comprobase si @wday ha cambiado de 1 a cualquier otro numero. Si no es uno y existe el fichero o la clave creada, la borramos, y la condicion principal podra volver a ejecutarse cuando llege de nuevo el domingo normalmente.
Saludos.
Pues para corregir esto se deberia poner otro valor en la condicion que nos indicase que ya ha sido reiniciado ese domingo. Podria ser la creacion de un archivo o la creacion de una clave en windows. Ademas de las condiciones ya dadas, se pondria otra que comprobase si existe ese archivo o esa clave de registro (o varia un valor en nuestra clave de registro). Si existe no se reinicia, pero si no existe se reinicia.
Tendriamos que meter una condicion que comprobase si @wday ha cambiado de 1 a cualquier otro numero. Si no es uno y existe el fichero o la clave creada, la borramos, y la condicion principal podra volver a ejecutarse cuando llege de nuevo el domingo normalmente.
Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).