Detectar proceso y realizar accion

afketo

Alguna aplicación que te detecte un proceso abierto o cuando se cierre el proceso realice alguna acción como, por ejemplo, apagar el equipo??

He estado buscando pero no encuentro nada así, no se si es posible..

Gracias.

D

De que SO hablamos?

afketo

Windows XP SP2 y SP3.

ekelon

Lo que buscas es un watchdog.

afketo

me he bajado el watchdog y no encuentro nada de cuando se cierre X proceso realice X acción

1 respuesta
ElRuso

#5 He creado un script guarro en vbs, que chequea cada segundo para a ver si el proccesso esta corriendo o no.
Si das mas informacion que es lo que quieres hacer se puede modificar el script y tal.

' Made in MV

strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

x=1
Do While x=1
	ProccList = ""
	Set colProcess = objWMIService.ExecQuery ("Select * from Win32_Process")

For Each objProcess in colProcess
	ProccList = ProccList & " " & objProcess.Name
Next

if (instr(ProccList,"calc.exe")>0) then  'substituir "calc.exe" con el proceso neseasrio
	wscript.echo "Ejecutado" ' Accion cuando el processo esta corriendo
else
	wscript.echo "Terminado" ' Accion cuando se termina el procceso
end if
wscript.sleep 1000
Loop
1 respuesta
afketo

#6 awww si funciona te adorare :qq:
pues cuando se cierre un proceso, no recuerdo el nombre ahora, se apague el equipo

1 respuesta
ElRuso

#7 Pues mira aqui lo tienes.

Substitue calc.exe en linea 15 con el nombre de proccesso.

El script solo apagara el ordenador cuando el proccesso es terminado, siempre y cuando esta ejecutado como administrador.

' Made in MV v1.1

strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

x=1
Do While x=1
	ProccList = ""
	Set colProcess = objWMIService.ExecQuery ("Select * from Win32_Process")

For Each objProcess in colProcess
	ProccList = ProccList & " " & objProcess.Name
Next

if (instr(ProccList,"calc.exe")>0) then  'substituir "calc.exe" con el proceso neseasrio
	 ' Accion cuando el processo esta corriendo
	runFlag=1 ' Bandera para determinar que el proccesso esta ejecutado
else
	if runFlag=1 then ' Accion cuando se termina el procceso
		set objShell = CreateObject("WScript.Shell")
		objShell.run "shutdown -s -t 00"
		wscript.Quit (0)
	end if
end if
wscript.sleep 1000
Loop

P.S. No es un script mas optimizado pero funciona

1 1 respuesta
afketo

#8 gracias tio, mañana lo pruebo en el curro y te cuento
edit: #8 perfecto, muchas gracias! lo unico que falla es el tiempo del shutdown por lo demás perfect (:

Usuarios habituales

  • afketo
  • ElRuso
  • ekelon
  • DiSKuN