Página 1 de 1

Reseteo programado del PC - Ejemplito para novatos

Publicado: 16 Feb 2011, 16:50
por BasicOs
Otro ejemplito sencillo para resetear un pc cada tanto tiempo, por ejemplo porque se vaya cargando la memoria o los procesos. Hoy en día los reinicios suelen ser RÁPIDOS.
Por ejemplo un servidor que hace falta reiniciarlo cada 24 horas la espera sería de $dias=1.
Habría que colocar el programa en la carpeta INICIO, para que arrancara con el en memoria, se le pueden hacer muchas opciones como logs, indicación de los segundos que faltan para reiniciarse con un aviso, etc..
Versión básica de ejemplo para aprender:

Código: Seleccionar todo

;Autor BasicOs www.autoit.es
HotKeySet("!{F8}", "Salir") ;Pulsando alt f8  llamo a una función
;Definiendo variables:
$tipodeCierre=16+2+4 ; Reinicio + Forzando todo.  Función Shutdown(valor numerico) es una combinacion de estos valores:
;0 = Logoff
;1 = Shutdown
;2 = Reboot
;4 = Force
;8 = Power down
;16= Force if hung
;32= Standby
;64= Hibernate
$dias=1
$horas = 0
$minutos = 0
$segundos = 0
; EL PROGRAMA: calculando los segundos
$totalsegundos = $dias*3600*24+$horas * 3600 + $minutos * 60 + $segundos
While 1
	Sleep(1000 * ($totalsegundos-20))
          TrayTip("Reseteo programado", "Faltan 10 segundos para resetear, haga click en este icono para cancelar ", 5, 1)
         Sleep(10000)
	Shutdown($tipodecierre) ; función de apagado, reseteo etc..
WEnd
Exit
;función
Func Salir()
	Exit
EndFunc  
Salu22:)
Edit:
Versión COMPLETA
Programador de acciones:
Puede arrancar de ficheros de música y de cualquier tipo programado, reseteo del pc, mensaje, copia de seguridad
Ahora fichero INI que se crea automáticamente con los siguientes parámetros modificables:
reseteaPC.ini
[parametros]
$tipodeAccion=ARRANCA (elige acción a realizar)
$arranca=Train Words.mp3 (solo para acción arranca abrir el fichero que se especifique)
$repetir=SI (Se repite indefinidamente el ciclo)
Ayudaotrasopciones=MENSAJE RESET BACKUPDROPBOX (Ayuda en el INI)
$timeOutParaEmpezar=5 (5 segundos previos a iniciar la cuenta hacia atrás)
AyudaAntesdeEmpezar=5 segundos de espera previa
AyudaPeriododelCiclo=Ejemplo Periodo de 1dia 0 horas 0 minutos
$dias=0
$horas=0
$minutos=2
$segundos=0

Código: Seleccionar todo

;Autor BasicOs www.autoit.es
HotKeySet("!{F8}", "Salir") ;Pulsando alt f8  llamo a una función
If Not FileExists("reseteaPC.ini") Then
	IniWrite("reseteaPC.ini", "parametros", "$tipodeAccion", "MENSAJE")
	IniWrite("reseteaPC.ini", "parametros", "Ayudaotrasopciones", "Cambiar MENSAJE a RESET BACKUPDROPBOX ARRANCA con NO.mp3")
	IniWrite("reseteaPC.ini", "parametros", "$arranca", "NO.mp3")
	IniWrite("reseteaPC.ini", "parametros", "$repetir", "SI")

	IniWrite("reseteaPC.ini", "parametros", "$timeOutParaEmpezar", "5")
	IniWrite("reseteaPC.ini", "parametros", "AyudaAntesdeEmpezar", "5 segundos de espera previa")
	IniWrite("reseteaPC.ini", "parametros", "AyudaPeriododelCiclo", "Ejemplo Periodo de 1dia 0 horas 0 minutos")
	IniWrite("reseteaPC.ini", "parametros", "$dias", "1")
	IniWrite("reseteaPC.ini", "parametros", "$horas", "0")
	IniWrite("reseteaPC.ini", "parametros", "$minutos", "0")
	IniWrite("reseteaPC.ini", "parametros", "$segundos", "0")
	Sleep(100)
	ShellExecute("reseteaPC.ini")
	ShellExecute(@ScriptDir)
	MsgBox(0, "Parámetros ReseteaPC", "Creación de parámetros, por favor revise fichero, y vuelva a arrancar el programa")
	Exit ;sale del programa para revisar

EndIf

$tipodeAccion = IniRead("reseteaPC.ini", "parametros", "$tipodeAccion", "RESET") ; "BACKUPDROPBOX" ; otros "MENSAJE" "RESET"
$arranca = IniRead("reseteaPC.ini", "parametros", "$arranca", "NO.mp3")
;Definiendo variables:
$tipodeCierre = 16 + 2 + 4 ; Reinicio + Forzando todo.  Función Shutdown(valor numerico) es una combinacion de estos valores:
;0 = Logoff
;1 = Shutdown
;2 = Reboot
;4 = Force
;8 = Power down
;16= Force if hung
;32= Standby
;64= Hibernate
$timeOutParaEmpezar = Number(IniRead("reseteaPC.ini", "parametros", "$tipodeAccion", "5")) ; espera antes de arrancar el cronometro
;cronometro
$repetir = IniRead("reseteaPC.ini", "parametros", "$repetir", "SI")
$dias = Number(IniRead("reseteaPC.ini", "parametros", "$dias", "1"))
$horas = Number(IniRead("reseteaPC.ini", "parametros", "$horas", "0"))
$minutos = Number(IniRead("reseteaPC.ini", "parametros", "$minutos", "0"))
$segundos = Number(IniRead("reseteaPC.ini", "parametros", "$segundos", "0"))
; EL PROGRAMA: calculando los segundos
$totalsegundos = $dias * 3600 * 24 + $horas * 3600 + $minutos * 60 + $segundos
$stringSegundos = ""
If $dias > 0 Then ; puede usar _iif()
	$stringSegundos = $dias & " dias, "
EndIf
$stringSegundos = $stringSegundos & $horas & " hora, " & $minutos & " min y " & $segundos & " sec "
;PROGRAMA
Sleep($timeOutParaEmpezar)
While 1
	TrayTip($tipodeAccion & " programado", " Tiempo: " & $stringSegundos & " para " & $tipodeAccion & ", haga click en este icono para cancelar ", 5, 1)
	Sleep(1000 * ($totalsegundos - 20))
	For $i = 20 To 1 Step -1 ; 20 segundos van mostrandose
		TrayTip($tipodeAccion & " programado", "Faltan " & $i & " segundos para " & $tipodeAccion & ", haga click en este icono para cancelar ", 5, 1)
		Sleep(1000)
	Next
	Select
		Case $tipodeAccion = "ARRANCA"
			If $arranca = "NO.mp3" Then
				MsgBox(0, "Definición de archivo a arrancar", "No se ha definido archivo a arrancar")
			Else
				ShellExecute($arranca)
			EndIf
		Case $tipodeAccion = "BACKUPDROPBOX" ; hay que tener zipgenius instalado en este caso
			Run(@ComSpec & " /c " & 'zg -backup D:\mydropbox1 "D:\My Dropbox"', "", @SW_SHOW)
		Case $tipodeAccion = "RESET"
			Shutdown($tipodeCierre) ; función de apagado, reseteo etc..
		Case $tipodeAccion = "MENSAJE"
			MsgBox(0, $totalsegundos, $tipodeCierre & " y no olvidar hacer pendiente", "")
		Case Else
			MsgBox(0, "", "No se ha definido la acción!")
	EndSelect
	If $repetir = "NO" Then Exit
WEnd
Exit

;función
Func Salir()
	Exit
EndFunc   ;==>Salir

Re: Reseteo programado del PC - Ejemplito para novatos

Publicado: 17 Feb 2011, 15:22
por BasicOs
Actualizado:
Este es un programita que me hice para resetear un servidor que se saturaba en RAM, con los procesos, por un programa no del todo optimizado pero que está bien elTeboCam
Ahora añadiendo más opciones,
puede elegir la acción que se hace desde la variable tipo de acción, acciones RESET y MENSAJE.

Código: Seleccionar todo

;Autor BasicOs www.autoit.es
$tipodeAccion = "RESET" ; "BACKUPDROPBOX" ; otros "MENSAJE" "RESET"
;
;
;
HotKeySet("!{F8}", "Salir") ;Pulsando alt f8  llamo a una función
;Definiendo variables:
$tipodeCierre = 16 + 2 + 4 ; Reinicio + Forzando todo.  Función Shutdown(valor numerico) es una combinacion de estos valores:
;0 = Logoff
;1 = Shutdown
;2 = Reboot
;4 = Force
;8 = Power down
;16= Force if hung
;32= Standby
;64= Hibernate
$timeOutParaEmpezar = 5 ; espera antes de arrancar el cronometro
;cronometro
$dias = 1
$horas = 0
$minutos = 0
$segundos = 0
; EL PROGRAMA: calculando los segundos
$totalsegundos = $dias * 3600 * 24 + $horas * 3600 + $minutos * 60 + $segundos
$stringSegundos = ""
If $dias > 0 Then ; puede usar _iif()
	$stringSegundos = $dias & " dias, "
EndIf
$stringSegundos = $stringSegundos & $horas & "horas:" & $minutos & "minutos:" & $segundos & " Segundos"
;PROGRAMA
Sleep($timeOutParaEmpezar)
While 1
	TrayTip($tipodeAccion&" programado", "Faltan " & $stringSegundos & " para " & $tipodeAccion & ", haga click en este icono para cancelar ", 5, 1)
	Sleep(1000 * ($totalsegundos - 20))
	For $i = 20 To 1 Step -1 ; 20 segundos van mostrandose
		TrayTip($tipodeAccion & " programado", "Faltan " & $i & " segundos para " & $tipodeAccion & ", haga click en este icono para cancelar ", 5, 1)
		Sleep(1000)
	Next
	Select
                Case $tipodeAccion = "BACKUPDROPBOX" ; hay que tener zipgenius instalado en este caso
                    run (@ComSpec & " /c " & 'zg -backup D:\mydropbox1 "D:\My Dropbox"', "", @SW_SHOW)
		Case $tipodeAccion = "RESET"
			Shutdown($tipodeCierre) ; función de apagado, reseteo etc..
		Case $tipodeAccion = "MENSAJE"
			MsgBox(0, $totalsegundos, $tipodeCierre & " y no olvidar hacer pendiente", "")
		Case Else
			MsgBox(0, "", "No se ha definido la acción!")
	EndSelect

WEnd
Exit

;función
Func Salir()
	Exit
EndFunc   ;==>Salir
Salu22:)
Actual uso de compresor en autoit (Zipgenius):
Ejemplo:
zg -backup "c:\Test\mybackup.zip" "C:\My Folder\"
"C:\My Folder" backup will be saved as "c:\Test\mybackup.zip". All filess will be included and no compression will be applied.
Fuente: http://zipgenius.altervista.org/zg6/eng_zghlp/index.htm

Actualización añadido linea para hacer backup en vez del reseteo:

Código: Seleccionar todo

$tipodeAccion = "RESET" ; "BACKUPDROPBOX" ; otros "MENSAJE" "RESET"
Case $tipodeAccion = "BACKUPDROPBOX" ; hay que tener zipgenius instalado en este caso
     run (@ComSpec & " /c " & 'zg -backup D:\mydropbox1 "D:\My Dropbox"', "", @SW_SHOW)

Re: Reseteo programado del PC - Ejemplito para novatos

Publicado: 18 Feb 2011, 02:33
por Esgrimidor
Le echo un vistazo y comento.
Muy interesante.

Re: Reseteo programado del PC - Ejemplito para novatos

Publicado: 14 Mar 2011, 18:59
por BasicOs
Editado primer post con versión completa de nuevo programa de reseto programado con fichero ini para opciones personalizadas.
Ahora arranca un canción cada tiempo programado ciclicamente o no, ($repetir=NO)

Incluye ZIP con fuentes, ini y ejecutable,
Salu22:)

Re: Reseteo programado del PC - Ejemplito para novatos

Publicado: 14 Mar 2011, 22:59
por Esgrimidor
Bajando que es gerundio

Ya se terminaron los carnavales por las Palmas ?

Re: Reseteo programado del PC - Ejemplito para novatos

Publicado: 01 Mar 2013, 19:05
por BasicOs
El código fuente del tebocam esta disponible aqui

Por si alguien desea incorporarlo dentro de un script de autoit para sistemas de vigilancia.
Está en C# . ~31,000 lineas de código.
Imagen
Control remoto por aquí:
http://www.emesn.com/autoitforum/viewto ... ine#p13579
Salu22):)