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
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