Ver Mensaje Individual
  #2 (permalink)  
Antiguo 06/09/2010, 10:06
Avatar de dogduck
dogduck
 
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 18 años, 3 meses
Puntos: 19
Respuesta: Impedir que se cierre una aplicación en Win XP

Oculto.vbs
Código vb:
Ver original
  1. Const HIDDEN_WINDOW = 12
  2. strComputer = "."
  3. Set objWMIService = GetObject("winmgmts:" _
  4. & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
  5. Set objStartup = objWMIService.Get("Win32_ProcessStartup")
  6. Set objConfig = objStartup.SpawnInstance_
  7. objConfig.ShowWindow = HIDDEN_WINDOW
  8. Set objProcess = GetObject("winmgmts:root\cimv2:Win32_Process")
  9. errReturn = objProcess.Create _
  10. ("NoCerrar.cmd", null, objConfig, intProcessID)
NoCerrar.cmd (en este caso el notepad.exe)
Código batch:
Ver original
  1. @echo off
  2. :inicio
  3. set ERRORLEVEL=
  4. tasklist | findstr notepad.exe
  5. if ERRORLEVEL==1 start notepad.exe
  6. rem delay de 5 sg
  7. @ping -n 5 127.0.0.1 > null
  8. goto inicio

Oculto.vbs, lanza de forma oculta el script nocerrar.cmd, que se encarga de monitorizar en un bucle si notepad.exe (por poner un ejemplo) esta abierto, si no lo esta, lo abre. Mero un delay de 5 sg, pero se puede quitar esa linea
Y voilá ...

Pero para hacer algo más eficiente, elegante y que no consuma demasiada cpu lo mejor seria programar un servicio que vigilara el proceso que desees que este siempre ejecutandose

salu2