elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Sistemas Operativos
| |-+  Windows (Moderador: Randomize)
| | |-+  Apagar la computadora tras inactividad, pero ignorar la inactividad al ver video
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 [3] 4 Ir Abajo Respuesta Imprimir
Autor Tema: Apagar la computadora tras inactividad, pero ignorar la inactividad al ver video  (Leído 20,829 veces)
WaAYa HaCK

Desconectado Desconectado

Mensajes: 292


Arduino, Android and music


Ver Perfil
Re: Apagar la computadora tras inactividad, pero ignorar la inactividad al ver video
« Respuesta #20 en: 3 Julio 2011, 11:33 am »

Exacto, es tan simple como agregar una tarea programada que ejecute un .bat:

tarea.bat
Código:
Wscript.exe "C:\comprobar.vbs"

comprobar.vbs
Código
  1. set objshell = createobject("wscript.shell")
  2. objshell.run "C:\apagar.bat", vbhide

apagar.bat
Código
  1.  
  2. @echo off
  3. Title=Foro.ElHacker.Net
  4. setlocal enabledelayedexpansion
  5.  
  6. REM By PiToLoKo
  7. REM Foro.ElHacker.Net
  8.  
  9.  
  10. :Bucle
  11. Set Reproductores=3
  12. ping localhost -n 900 >nul
  13.  
  14. Set Reproductor=mpc.exe & Call :Verify
  15. Set Reproductor=mpc-hc.exe & Call :Verify
  16. Set Reproductor=kmplayer.exe & Call :Verify
  17.  
  18. If !Reproductores! EQU 0 (
  19. echo Reinicio en proceso...
  20. shutdown -s -t 30
  21. goto :bucle
  22. ) ELSE (
  23. shutdown -a >nul 2>&1
  24. echo Reinicio cancelado, El reproductor de video se esta ejecutando.
  25. ping localhost -n 5 >nul
  26. cls
  27. goto :bucle
  28. )
  29.  
  30.  
  31. tasklist /fi "IMAGENAME eq %reproductor%" | findstr ".exe" >nul
  32.  
  33. IF %ERRORLEVEL% GEQ 1 (
  34. Set /a Reproductores-=1
  35. goto:eof
  36. ) else (
  37. goto:eof
  38. )
  39.  
  40.  


Sólo hacen falta esos 3 elementos:

tarea.bat ejecuta un VBS.
comprobar.vbs ejecuta el apagar.bat, oculto.
apagar.bat se queda ejecutándose oculto todo el rato, comprobando si hay algún reproductor activo. Si no, apaga.

Ahora, lo que puedes hacer es hacer que se ejecute automáticamente "tarea.bat":

Agregándolo al Registro:
Código:
reg ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Run /v tarea /d "C:\tarea.bat"

Con schtasks:
Código:
schtasks /create /SC ONLOGON /TN "Tarea" /TR "C:\tarea.bat"



Esto es el resumen de todo lo que ha dicho pitoloko . Con los 3 elementos y agregando el primero de ellos al Registro o a Tareas Programadas, no deberías tener ningún problema. Por cierto, cómo haces para detectar si el PC está inactivo?

PD: pitoloko, sé que ERRORLEVEL es una variable, pero a mí me dio error cuando puse:
Código:
if %ERRORLEVEL%==1 ...
y tuve que poner:
Código:
if ERRORLEVEL 1 ...

Ahora, no sé por qué no me funcionó.

Saludos!


En línea

La cacatúa yoyó es nueva en el zoo!
SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


Ver Perfil
Re: Apagar la computadora tras inactividad, pero ignorar la inactividad al ver video
« Respuesta #21 en: 3 Julio 2011, 15:59 pm »


PD: pitoloko, sé que ERRORLEVEL es una variable, pero a mí me dio error cuando puse:
Código:
if %ERRORLEVEL%==1 ...
y tuve que poner:
Código:
if ERRORLEVEL 1 ...

Ahora, no sé por qué no me funcionó.

Ahhh vaya vaya, ta bien, pero "errorlevel 1" te funcionaba? porque a mi no  :xD

Yo siempre uso:


LES   : less
LEQ   : less or equal
EQU   : equal
GEQ   :greater or equal
GTR : greater


Así evito esos posibles errores, total, es lo mismo.  :xD


« Última modificación: 3 Julio 2011, 16:03 pm por pitoloko » En línea

No he vuelto, solo estoy de paso.
WaAYa HaCK

Desconectado Desconectado

Mensajes: 292


Arduino, Android and music


Ver Perfil
Re: Apagar la computadora tras inactividad, pero ignorar la inactividad al ver video
« Respuesta #22 en: 3 Julio 2011, 16:09 pm »

Ya te dije que mi XP es el mejor  :-X
Pijos del W7... bah!  :xD



LES   : less
LEQ   : less or equal
EQU   : equal
GEQ   :greater or equal
GTR : greater


Así evito esos posibles errores, total, es lo mismo.  :xD

Sí, funciona mejor, normalmente. Yo los uso para mis juegos en batch, cuando me aburro en clase  :laugh:

Saludos!
En línea

La cacatúa yoyó es nueva en el zoo!
Aikanáro Anário


Desconectado Desconectado

Mensajes: 694



Ver Perfil WWW
Re: Apagar la computadora tras inactividad, pero ignorar la inactividad al ver video
« Respuesta #23 en: 3 Julio 2011, 17:39 pm »

Gracias por todo lo que han hecho, pero creo que han hecho de más  :xD

El script por sí solo no puede darse cuenta cuando la computadora está inactiva, así que si lo ejecuto, siempre que no esté corriendo alguno de esos procesos, se apagará.

Entonces no conviene que el sript tenga un bucle, ya que de eso se encarga el programador de tareas, de que cada 15 minutos, verificar si la computadora está inactiva, si lo está entonces ejecutará el script; pero si el script es un bucle se quedará ejecutandose y apagará la computadora cuando esté haciendo cualquiera otra cosa excepto viendo un video.

La primera versión del script de WaAYa HaCK es la que me conviene  :)

Código
  1. @echo off
  2. tasklist /fi "IMAGENAME eq wmplayer.exe" | find /i "wmplayer.exe"
  3. if ERRORLEVEL 1 goto kmplayer
  4. :kmplayer
  5. tasklist /fi "IMAGENAME eq KMPlayer.exe" | find /i "KMPlayer.exe"
  6. if ERRORLEVEL 1 goto mplayerc
  7. :mplayerc
  8. tasklist /fi "IMAGENAME eq mplayerc.exe" | find /i "mplayerc.exe"
  9. if ERRORLEVEL 1 shutdown -s -t 30 -c "No estas viendo ningun video"
  10. ping localhost -n 5 >nul
  11.  
  12.  


Solo le agregué el Media Player Classic, creo que está bien xD

Una pregunta ¿Qué hace la última línea?
« Última modificación: 3 Julio 2011, 17:54 pm por Aikanáro Anário » En línea

Lo que faltaba en internet: http://binar10s.blogspot.com/
WaAYa HaCK

Desconectado Desconectado

Mensajes: 292


Arduino, Android and music


Ver Perfil
Re: Apagar la computadora tras inactividad, pero ignorar la inactividad al ver video
« Respuesta #24 en: 3 Julio 2011, 17:50 pm »

Exacto!

Entonces, no hace falta que haga un bucle. Modifico el script de pitoloko:
Código
  1. @echo off
  2. Title=Foro.ElHacker.Net
  3. setlocal enabledelayedexpansion
  4.  
  5. REM By PiToLoKo
  6. REM Foro.ElHacker.Net
  7.  
  8. Set Reproductores=3
  9.  
  10.  
  11. Set Reproductor=mpc.exe & Call :Verify
  12. Set Reproductor=mpc-hc.exe & Call :Verify
  13. Set Reproductor=kmplayer.exe & Call :Verify
  14.  
  15. If !Reproductores! EQU 0 (
  16. echo Reinicio en proceso...
  17. shutdown -s -t 30
  18. ) ELSE (
  19. shutdown -a >nul 2>&1
  20. echo Reinicio cancelado, El reproductor de video se esta ejecutando.
  21. ping localhost -n 5 >nul
  22. cls
  23. )
  24.  
  25.  
  26. tasklist /fi "IMAGENAME eq %reproductor%" | findstr ".exe" >nul
  27.  
  28. IF %ERRORLEVEL% GEQ 1 (
  29. Set /a Reproductores-=1
  30. goto:eof
  31. ) else (
  32. goto:eof
  33. )

Sólo hace falta que tu tarea programada ejecute esto.


Saludos!
« Última modificación: 3 Julio 2011, 18:13 pm por WaAYa HaCK » En línea

La cacatúa yoyó es nueva en el zoo!
Aikanáro Anário


Desconectado Desconectado

Mensajes: 694



Ver Perfil WWW
Re: Apagar la computadora tras inactividad, pero ignorar la inactividad al ver video
« Respuesta #25 en: 3 Julio 2011, 17:57 pm »

Yo no sé mucho de batch, pero creo que tiene un error dices goto :bucle, pero no existe :bucle, o sea no tiene donde ir....

¿Y cual es la diferencia entre la versión de pitoloko y la tuya?
En línea

Lo que faltaba en internet: http://binar10s.blogspot.com/
WaAYa HaCK

Desconectado Desconectado

Mensajes: 292


Arduino, Android and music


Ver Perfil
Re: Apagar la computadora tras inactividad, pero ignorar la inactividad al ver video
« Respuesta #26 en: 3 Julio 2011, 18:26 pm »

Jajaja OMG FAIL! xDD . Modifiqué el script de pitoloko borrando los bucles y voy y me dejo el goto.  :P

Ya está arreglado.

Una pregunta ¿Qué hace la última línea?

La línea ping localhost -n 5>nul es usada como temporizador, aunque no sirve para esto.
Ping (Packet InterNetwork Groper) es la utilidad de Windows que debes conocer, envía paquetes a un host para comprobar si está activo, aunque puede tener otras funciones.
localhost somos nosotros, el host al que hacemos ping.
-n 5 es el número de peticiones de ping al host. Cada petición es 1 segundo, así que esta línea tarda 5 segundos.
Por último, >nul es una redirección. Con ella, se podría resumir que:
la línea ping localhost -n 5>nul envía 5 peticiones a nosotros mismos durante 5 segundos, y no lo muestra en ninguna parte. Por eso, suele ser usada como temporizador.

ping localhost -n 200 >nul en un batch tardaría 200 segundos en proceder, ya que está ocupado haciendo otra cosa, pero tú no ves nada. Es como una pausa.


Saludos!
En línea

La cacatúa yoyó es nueva en el zoo!
Aikanáro Anário


Desconectado Desconectado

Mensajes: 694



Ver Perfil WWW
Re: Apagar la computadora tras inactividad, pero ignorar la inactividad al ver video
« Respuesta #27 en: 3 Julio 2011, 18:37 pm »

Entendido   ;)
En línea

Lo que faltaba en internet: http://binar10s.blogspot.com/
Edu


Desconectado Desconectado

Mensajes: 1.082


Ex XXX-ZERO-XXX


Ver Perfil
Re: Apagar la computadora tras inactividad, pero ignorar la inactividad al ver video
« Respuesta #28 en: 3 Julio 2011, 18:57 pm »

Como haces para saber cuando esta inactiva la pc?
En línea

SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


Ver Perfil
Re: Apagar la computadora tras inactividad, pero ignorar la inactividad al ver video
« Respuesta #29 en: 3 Julio 2011, 19:30 pm »

un bucle se quedará ejecutandose y apagará la computadora cuando esté haciendo cualquiera otra cosa excepto viendo un video.

Yo pensé que era eso lo que querias  :xD


¿Y cual es la diferencia entre la versión de pitoloko y la tuya?

Que la mia era un bucle que se ejecuta cada 15 min, y la modificación de waAya solo ejecuta una vez la comprobación (Su versión esta pensada para que cada 15 min tu corras el batch desde la tarea)

ping localhost -n 5 >nul

Una pregunta ¿Qué hace la línea?

Como diría Leo, Son las solicitudes de echo.

Como haces para saber cuando esta inactiva la pc?

tal vez use esta api :/

GetIdleMinutes API function
« Última modificación: 3 Julio 2011, 19:33 pm por pitoloko » En línea

No he vuelto, solo estoy de paso.
Páginas: 1 2 [3] 4 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Tiempo de inactividad
Programación Visual Basic
SheKeL_C$ 1 1,487 Último mensaje 16 Junio 2006, 07:11 am
por Grimble Grumble
Tiempo de inactividad
Programación Visual Basic
SheKeL_C$ 9 3,853 Último mensaje 21 Noviembre 2006, 15:19 pm
por Kurtt
Touch ID pedirá una segunda contraseña tras dos días de inactividad o reinicio
Noticias
wolfbcn 0 1,038 Último mensaje 12 Septiembre 2013, 17:54 pm
por wolfbcn
[Resuelto] Cerrar sesion por inactividad
Desarrollo Web
peib0l 2 13,212 Último mensaje 4 Mayo 2015, 19:48 pm
por peib0l
código para evitar que el computador se bloquee por inactividad
Programación General
binario010101 7 7,113 Último mensaje 7 Noviembre 2015, 18:58 pm
por binario010101
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines