Apagar la computadora tras inactividad, pero ignorar la inactividad al ver video

Iniciado por Aikanáro Anário, 1 Julio 2011, 21:10 PM

0 Miembros y 1 Visitante están viendo este tema.

Aikanáro Anário

No, creo que sea tan sencillo hacer eso. Por lo menos para mi, que no tengo mucho conocimiento....
Lo que faltaba en internet: http://binar10s.blogspot.com/

WaAYa HaCK

Bueno, creo que lo conseguí.
Sí, se puede hacer con un batch, con el proceso tasklist:

Código (dos) [Seleccionar]
@echo off
tasklist /fi "IMAGENAME eq wmplayer.exe" | find /i "wmplayer.exe"
if ERRORLEVEL 2 echo. >nul
if ERRORLEVEL 1 shutdown -s -t 30 -c "No estas viendo ningun video"
ping localhost -n 5 >nul


Te debería funcionar:
tasklist /fi "IMAGENAME eq wmplayer.exe" | find /i "wmplayer.exe"
Esta línea filtra los procesos y encuentra el wmplayer.exe (cámbialo por lo que necesites)

if ERRORLEVEL 2 echo. >nul
No hagas nada si lo encuentras...

if ERRORLEVEL 1 shutdown -s -t 30 -c "No estas viendo ningun video"
Si no lo encuentras, apágate!

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

Aikanáro Anário

Y para poner mas de un proceso repito la línea:
tasklist /fi "IMAGENAME eq wmplayer.exe" | find /i "wmplayer.exe"
con los otros procesos?
Lo que faltaba en internet: http://binar10s.blogspot.com/

WaAYa HaCK

Creo que podría hacerse con un goto:
Código (dos) [Seleccionar]

@echo off
tasklist /fi "IMAGENAME eq wmplayer.exe" | find /i "wmplayer.exe"
if ERRORLEVEL 2 echo. >nul
if ERRORLEVEL 1 goto otro
:otro
tasklist /fi "IMAGENAME eq kmplayer.exe" | find /i "kmplayer.exe"
if ERRORLEVEL 2 echo. >nul
if ERRORLEVEL 1 shutdown -s -t -c "No estas viendo ningun video"
ping localhost -n 5 >nul


Así, si no encuentra el primer proceso ejecutándose, va a mirar si está el otro proceso que le indicaste.

Puedes hacer así para todos los reproductores.

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

SuperDraco

Una correción y modificación del code de WaAya (Errorlevel es una variable %%  :P)

PD: La comprobación se ejecuta cada 900 segundos, 15 min.

Código (dos) [Seleccionar]


@echo off
Title=Foro.ElHacker.Net
setlocal enabledelayedexpansion

REM By PiToLoKo
REM Foro.ElHacker.Net


:Bucle
Set Reproductores=3
ping localhost -n 900 >nul

Set Reproductor=mpc.exe & Call :Verify
Set Reproductor=mpc-hc.exe & Call :Verify
Set Reproductor=kmplayer.exe & Call :Verify

If !Reproductores! EQU 0 (
echo Reinicio en proceso...
shutdown -s -t 30
goto :bucle
) ELSE (
shutdown -a >nul 2>&1
echo Reinicio cancelado, El reproductor de video se esta ejecutando.
ping localhost -n 5 >nul
cls
goto :bucle
)


:Verify
tasklist /fi "IMAGENAME eq %reproductor%" | findstr ".exe" >nul

IF %ERRORLEVEL% GEQ 1 (
Set /a Reproductores-=1
goto:eof
) else (
goto:eof
)



EDITO: habia un fallo, ya está corregido xD ahora si que si, antes si no encontraba  uno solo de los 3 reproductores se reiniciaba, ahora se asegura de que ninguno de los 3 se esté ejecutando para reiniciarse  :xD definitivamente ahora si  :xD, he tenido que hacerle muchos cambios, bajale el valor de los segundos a ver si te funciona bien ^^
No he vuelto, solo estoy de paso.

Aikanáro Anário

Bueno, no lo he probado aún, pero creo que funcionará.
Una cosa, ya que el asistente de tareas programas es quien se encarga de ejecutar el script, creo que debería de cambiar el tiempo a 60 segundos como máximo. Por que si no se contaran los 15 que dura en inactividad y los 15 del script para hacer la comprobación.
Lo que faltaba en internet: http://binar10s.blogspot.com/

Edu

Pero es que la idea es que uses el programa ejecutandolo simplemente y que corra oculto  y entonces cada 15 min comproara la inactividad en el pc. Para que inicie con windows siempre y que corra oculto.
Pitoloko te lo hace en 10 min usando vbscript para que lo ejecute al bat oculto y en la entrada del registro poner ese vbscript

Aikanáro Anário

Mmmm Todavía no entiendo como lo voy a usar  :-\

¿No sé supone que un script solo se ejecuta una vez? ¿debo de ponerlo en el asistente de tareas programadas o crear una entrada en el registro para que se ejecute con la maquina?
Lo que faltaba en internet: http://binar10s.blogspot.com/

Edu

Pense que pitoloko iba a estar aburrido y te lo hacia en un ratito xD.
Esque yo lo haria en vb6 por ejemplo y entonces qedaria prendido el programa siempre verificando cada 15 min si esta inactiva la pc.

Como haces para qe se ejecute cuando esta inactiva la pc?

SuperDraco

Cita de: XXX-ZERO-XXX en  3 Julio 2011, 06:41 AM
Pense que pitoloko iba a estar aburrido y te lo hacia en un ratito xD.

Cita de: Aikanáro Anário en  3 Julio 2011, 06:29 AM
Mmmm Todavía no entiendo como lo voy a usar  :-\

¿No sé supone que un script solo se ejecuta una vez? ¿debo de ponerlo en el asistente de tareas programadas o crear una entrada en el registro para que se ejecute con la maquina?
"

jaja mejor tarde que nunca, no habia leido las repsuestas xD.

El script que te hice, es un bucle que se repite una y otra vez cada 15 minutos, tu lo ejecutas y no tienes que preocuparte de nada más.

Si quieres "pararlo" debes matar el proceso desde el administrador de tareas.

O en consola:

TaskKill /IM "cmd.exe"

Puedes crear la tarea manualmente en el programador de tareas.

Tambien puedes crearla desde la consola, así:

schtasks /create /SC ONLOGON /TN "Reiniciar" /TR "Ruta_DEL_BATCH.bat"

Y si deseas borrarla:
schtasks /delete /TN "Reiniciar"

O tambien puedes crear la clave de registro para que el bat se ejecute al iniciar windows, con esta linea:


Reg ADD "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" /V Reiniciar /d "RUTA_DEL_BATCH.bat"


Para ejecutar el batch oculto, tienes 3 4 opciones (Como mínimo).

- Descargar y Usar la utilidad nircmd para batch

Nircmd win hide ititle "cmd.exe"

- Usar un compilador de batch con opciones para ocultarlo. (Ahora no recuerdo ninguno, no me gustan)

- Ejecutar el batch desde un vbscript.

Este sería el vbscript:

Código (vb) [Seleccionar]
set objshell = createobject("wscript.shell")
objshell.run "RUTA_DEL_BATCH.bat", vbhide


Y se ejecutaría desde otro batch así, con esta línea:

Wscript.exe "C:\RUTA_DEL_VBS.vbs"


EDITO:

4º - Windows Hider > http://www.zonasystem.com/2011/04/ocultar-aplicaciones-en-ejecucion-con.html




si vas a usar el vbscript, recuerda de modificar la clave de registro que te dije para ejecutar el .vbs y no el .bat:xD

Espero no haberte liado, Saludos!


No he vuelto, solo estoy de paso.