Vista para acceder a autoit desde el telefono: ALTA DE UN PROCESO que queremos controlar: Uno que queramos controlar va en este formulario: http://www.spa1n.com/vigilaonline/anade1.html
USAR EL MANDO (e.g. calc.exe), apagar o encender:
Dirección para manejar el remoto: http://www.spa1n.com/vigilaonline/index.php
La primera vez hay que introducir la contraseña y el nombre de la ventana del proceso el que pusimos en la pantalla anterior.
Una vez que estemos en el menú darlo de alta en favoritos para que salga el menu sin introducir contraseña: Usar el navegador para iniciar el programa de la musica o un video, apagar el pc, defragmentar, encender la pantalla (llamada a programas externos), preparar un ambiente romántico, o encender la pantalla con videos.
PROGRAMA AUTOIT SERVIDOR de procesos
Aquí está el código AUTOIT beta, el código está completo:
La primera vez que ejecutas vigilaonline.exe en el pc pide datos que se graban en vigilaonline.ini (abrir con notepad):
1.- La contraseña que tiene que ser la misma de internet e.g.: micontrasena344343
2.- El nombre de la ventana del proceso a controlar (uso el mismo nombre del título de la ventana): msn
3.- El código del programa a arrancar, por ejemplo: messenger.exe /silent
4.- El nombre del proceso a cerrar: ej: messenger.exe
Separados por comas añadir más procesos.
5.- Se deja el programa en memoria y va chequeando en el host si hay algún cambio (encender o apagar algún programa)
6.- En caso que detecte que hemos accedido a la web y pulsado encender o apagar, ejecuta el programa: e.g. messenger.exe /silent
Código Autoit del programa controlador-servidor que hay que ejecutar en el PC a controlar:
Código: Seleccionar todo
;Credits Basicos en Autoit.es
;Apps Control Remote vigilaonline
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=vigilaonline.ico
#AutoIt3Wrapper_outfile=Vigilaonline.exe
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
;Credits Basicos en Autoit.es 03/2012
;Apps Control Remote vigilaonline
#include <Misc.au3>
;;inicializando
;If _Singleton("Vigilaonline", 1) = 0 Then Exit
HotKeySet("F11", "Salir")
Func Salir()
Exit
EndFunc ;==>Salir
;If Not FileExists(@StartupCommonDir & "\Acceso directo a Vigilaonline.lnk") Then
; FileCopy(@WorkingDir & "\Acceso directo a Vigilaonline.lnk", @StartupCommonDir & "\Acceso directo a Vigilaonline.lnk")
;EndIf
If Not FileExists("Vigilaonline.ini") Or IniRead("Vigilaonline.ini", "nombredeusuario", "$nombredeusuario", "fallo") = "fallo" Then
IniWrite("Vigilaonline.ini", "nombredeusuario", "$nombredeusuario", InputBox("Su contraseña/nombre", "Su contraseña - despues preguntare datos sobre los programas", "JuanRodriguezxx")) ;valor inicial si no Hay INI
IniWrite("Vigilaonline.ini", "procesos", "$ventanas", InputBox("Ventanas/identificacion Procesos a controlar", "Escriba nombre de la ventana procesos separados por coma", "MSN,Avira"))
IniWrite("Vigilaonline.ini", "procesos", "$arranques", InputBox("Procesos a arrancar", "Escriba Ventana procesos separados por coma", "messenger.exe /silent -quick,avira.exe"))
IniWrite("Vigilaonline.ini", "procesos", "$procesos", InputBox("Procesos a cerrar", "Escriba Ventana procesos a cerrar separados por coma", "messenger.exe,avira.exe"))
IniWrite("Vigilaonline.ini", "nombredeusuario", "$modooperacion", InputBox("Modo de Operación", "Para avisos en el Tray - Escriba normal/verbose", "verbose"))
IniWrite("Vigilaonline.ini", "procesos", "$osb", "")
IniWrite("Vigilaonline.ini", "procesos", "$osbp", "")
IniWrite("Vigilaonline.ini", "procesos", "$comando", "")
EndIf
;;cargando usuario y procesos/aplicaciones a controlar
$nombreusuario = IniRead("Vigilaonline.ini", "nombredeusuario", "$nombredeusuario", "fallo")
$listadeprocesos = StringSplit(IniRead("Vigilaonline.ini", "procesos", "$procesos", "fallo"), ",")
$listadearranques = StringSplit(IniRead("Vigilaonline.ini", "procesos", "$arranques", "fallo"), ",")
$ventanasdeprocesos = StringSplit(IniRead("Vigilaonline.ini", "procesos", "$ventanas", "fallo"), ",")
; Creamos 2 matrices
$InterruptordeProcesos = StringSplit(IniRead("Vigilaonline.ini", "procesos", "$procesos", "fallo"), ",")
$valorAntesdeProcesos = StringSplit(IniRead("Vigilaonline.ini", "procesos", "$procesos", "fallo"), ",")
$modooperacion = StringSplit(IniRead("Vigilaonline.ini", "nombredeusuario", "$modooperacion", "fallo"), ",")
$obs = IniRead("Vigilaonline.ini", "procesos", "$obs", "")
$osbp = StringSplit(IniRead("Vigilaonline.ini", "procesos", "$obs", ""), ",")
;;lee los valores actuales de las aplicaciones/proc en la web
For $i = 1 To $listadeprocesos[0]
;http://www.spa1n.com/vigilaonline/anade1.html
;http://www.spa1n.com/vigilaonline/index.php?ud_nombre=password&ud_vproceso=Calcula
$InterruptordeProcesos[$i] = InetgetValor("http://www.spa1n.com/vigilaonline/index.php?ud_nombre=" & $nombreusuario & "&ud_vproceso=" & $ventanasdeprocesos[$i])
;;;;$Interruptordecomando[$i] = InetgetValor("http://www.spa1n.com/vigilaonline/index.php?ud_nombre=" & $nombreusuario & "&ud_vproceso=" & $ventanasdeprocesos[$i])
Sleep(1000)
Next
#include <Array.au3>
While 1
$var = Ping("www.google.com", 1000) ;. tambien posible: If @error = 0 Then ..
If $var Then TrayAviso("Internet Ok", "Timeout segds:" & $var, 5, 1, $modooperacion)
If Not $var Then MsgBox(0, "Error Internet Estado", "Error de conexión: " & @error, 15)
Sleep(1000)
For $i = 1 To $listadeprocesos[0]
If $valorAntesdeProcesos[$i] <> $InterruptordeProcesos[$i] Then
If $InterruptordeProcesos[$i] = "0" Then Apaga($listadeprocesos[$i], $ventanasdeprocesos[$i])
If $InterruptordeProcesos[$i] = "3" Then Enciende($listadearranques[$i])
If $InterruptordeProcesos[$i] = "6" Then Salir()
If $InterruptordeProcesos[$i] = "7" Then Shutdown(16 + Number($InterruptordeProcesos[$i]) - 7)
If $InterruptordeProcesos[$i] = "8" Then Shutdown(16 + Number($InterruptordeProcesos[$i]) - 7)
If $InterruptordeProcesos[$i] = "9" Then Shutdown(16 + Number($InterruptordeProcesos[$i]) - 7)
$NADA = InetRead("http://www.spa1n.com/vigilaonline/updated.php?ud_nombre=" & $nombreusuario & "&ud_interruptor=K&ud_vproceso=" & $ventanasdeprocesos[$i] & "&ud_obs=" & $obs, 1)
If $obs <> "" Then IniWrite("Vigilaonline.ini", "procesos", "$osb", "")
Sleep(500)
$valorAntesdeProcesos[$i] = "K" ;& $InterruptordeProcesos[$i]
EndIf
If $InterruptordeProcesos[$i] = "1" Then Enciende($listadearranques[$i])
$valorinet="http://www.spa1n.com/vigilaonline/index.php?ud_nombre=" & $nombreusuario & "&ud_vproceso=" & $ventanasdeprocesos[$i]
$valorinet = InetgetValor($valorinet)
$InterruptordeProcesos[$i] = StringLeft($valorinet, 1)
$Interruptordecomando = StringMid($valorinet, 2)
procesadordecomandos($Interruptordecomando)
TrayTip($nombreusuario & " -> " & $ventanasdeprocesos[$i] & "-" & $i & "º", "Estado:" & $InterruptordeProcesos[$i], 5, 1)
Sleep(1000)
Next
WEnd
Func procesadordecomandos($comando)
if $comando= "" then Return
$param = StringMid($comando, 6)
$comando = StringLeft($comando, 5)
Switch $comando
Case "run"
ShellExecute($comando)
EndSwitch
EndFunc ;==>procesadordecomandos
Func InetgetValor($urlweb)
Local $sData = InetRead($urlweb, 1)
Local $nBytesRead = @extended
$CADENA = BinaryToString($sData)
$CADENA = StringMid($CADENA, StringInStr($CADENA, "Valor:") + 6, 1)
Return $CADENA
EndFunc ;==>InetgetValor
Func Enciende($procesoon)
If ProcessWait($procesoon, 2) = 0 Then
TrayTip("Iniciando un momento", "Encendiendo " & $procesoon, 5, 1)
TrayTip("Ahora arrancando", "No estaba encendido", 5, 1)
Run($procesoon)
Else
TrayTip("Vigilando programa", "Ok - Encendido " & $procesoon, 5, 1)
Sleep(1000)
EndIf
EndFunc ;==>Enciende
Func Apaga($proceso, $ventana)
TrayTip("Cerrando un momento ", "Cerrando normal " & $proceso & " con " & $ventana, 5, 1)
If $proceso = "shutdown" Then Shutdown(Eval($ventana))
If WinExists($ventana) And ProcessExists($proceso) And $ventana <> "" Then
WinClose($ventana)
WinWaitClose($ventana, "", 2)
WinKill($ventana)
WinWaitClose($ventana, "", 2)
EndIf
If ProcessExists($proceso) Then
TrayTip("Cerrando un momento", "Dificil de cerrar. " & $proceso & " con " & $ventana, 5, 1)
ProcessClose($proceso)
ProcessWaitClose($proceso, 5)
If ProcessExists($proceso) Then TrayTip("Todavía EXISTE " & $proceso, "sin cerrar", 5, 1)
EndIf
EndFunc ;==>Apaga
Func TrayAviso($winaviso, $textaviso, $tiempoaviso, $icono, $modoopera)
;if $modoopera="verbose" then
TrayTip("pp", $modoopera & $winaviso & "-" & $textaviso, Number($tiempoaviso), $icono)
EndFunc ;==>TrayAviso
;
nombre ventanaproceso interruptor (0 es apagado, 1 encendido)
1 password Firefox 0
2 micontrasena msn 0
3 password Calcu 1
Direcciones web:
Añadir procesos: http://www.spa1n.com/vigilaonline/anade1.html
Web para manejo de eventos y menu de procesos: http://www.spa1n.com/vigilaonline/index.php
En la práctica es como si tienes un mando universal en el movil para poner la música, o controlar programas del pc desde la calle, igual que si fuera el mando de la tele.
Edit:
EL valor de la ventana es el identificador que es Calcula que son las primeras palabras del titulo de la ventana, sirve se intenta por 5 segundos cerrar la ventana bien antes de matar el proceso.
En caso de que solo quieras matar el proceso, va a dar igual el nombre de ventana, siempre que no sea una que exista antes, porque la cierra.
Esto es un tópico del lenguaje autoit, no es un foro de PHP. El código es PURO 100% Autoit, no PHP para crear cualquier programa REMOTO.
Crea acciones más complejas, si ejecutas como proceso en remoto un script de autoit que ejecute otras acciones complejas como enviar un mail, elegir un menu, etc...