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.

DiSKuN

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