Foros del Web » Soporte técnico » Windows »

Impedir que se cierre una aplicación en Win XP

Estas en el tema de Impedir que se cierre una aplicación en Win XP en el foro de Windows en Foros del Web. Hola todos. Sé que debe ser una pregunta extraña. Hice una búsqueda aquí, pero no me aparece nada. Mi problema es evitar que alguien cierre ...
  #1 (permalink)  
Antiguo 06/09/2010, 08:04
(Desactivado)
 
Fecha de Ingreso: noviembre-2002
Ubicación: Ciudad Autónoma de Buenos Aires
Mensajes: 2.367
Antigüedad: 21 años, 6 meses
Puntos: 317
Impedir que se cierre una aplicación en Win XP

Hola todos.

Sé que debe ser una pregunta extraña. Hice una búsqueda aquí, pero no me aparece nada.

Mi problema es evitar que alguien cierre un programa (como un firewall) en Windows XP. O que si lo cierra, que se abra de nuevo, sólo.

A mí se me ocurrió ocultar los íconos de la barra, porque justamente el Zonealarm (no sé si otros) no te deja cerrarlo desde los botones de sistema, solamente desde la barra al lado del reloj, pero no sé mucho de configuración de XP.

Si alguien recuerda haber visto algún tutorial y me deja el enlace le agradezco mucho.
  #2 (permalink)  
Antiguo 06/09/2010, 10:06
Avatar de dogduck  
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 18 años, 4 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
  #3 (permalink)  
Antiguo 09/09/2010, 06:11
Avatar de dogduck  
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 18 años, 4 meses
Puntos: 19
Respuesta: Impedir que se cierre una aplicación en Win XP

Bueno, me he tomado el tema de este post como ejercicio y he conseguido una solución más elegante.
La tengo en Ejecutar un script como servicio en windows

Cita:

Ejecutar un script como servicio en windows
O
Crear servicio en windows basado en script:

Se trata de crear un servicio que se encargue de lanzar un script que vigila o controla si existe un proceso y si no existe el proceso lo lanza.
Escenario:

* Windows XP SP3

Requisitos:

* instsrv.exe: Windows Server 2003 Resource Kit Tools
* srvany.exe: Windows Server 2003 Resource Kit Tools
* script cmd: Batch Scripting: script para impedir que se cierre una aplicación o proceso

Implementación del servicio:

* Copio las utilidades instsrv.exe y srvany.exe, en la carpeta de trabajo ( e:\Servicios )

* Inicio > ejecutar > cmd > e: > cd Servicios

E:\Servicios>instsrv.exe “Nocerrar” e:\Servicios\srvany.exe

He creado el Servicio llamado Nocerrar, se crea por defecto como tipo de Inicio Automático y como inicio de sesión como Sistema Local

Ahora lo parametrizamos o configuramos o personalizamos:

* Ejecutamos el regedit y navegamos hasta la rama:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Servic es\Nocerrar

* Añadimos nueva clave a Nocerrar, y la llamamos Parameters

* Añadimos un valor alfanumérico a Parameters, llamado Application

* Damos a Application como valor, el Path o ruta al script que deseamos que corra como un servicio

en mi caso el path o ruta al script es: e:\Servicios\nocerrar.cmd

* Iniciamos el servicio desde consola cmd

e:\Servicios\ net start nocerrar

El script nocerrar.cmd, se encarga de monitorizar si el proceso notepad.exe esta corriendo y si no se esta ejecutando lo lanza.

view source
print?
1 @echo off
2 :inicio
3 set proceso=notepad.exe
4 set ERRORLEVEL=
5 tasklist | findstr %proceso%
6 if ERRORLEVEL==1 start %proceso%
7 rem delay de 5 sg
8 @ping -n 5 127.0.0.1 > null
9 goto inicio



Observamos en el task manager o administrador de tareas que se ha iniciado en background (de forma no visible) el proceso notepad.exe. Si finalizamos el proceso notepad.exe, al cabo de unos 5 sg, se vuelve a iniciar, así hasta que paremos el servicio ( c:\> net stop nocerrar )

En lugar del proceso notepad.exe, podemos poner aquel que deseemos, incluso con parámetros. Todo queda a la imaginación del usuario.

Para eliminar el servicio:

e:\Servicios\INSTSRV nocerrar REMOVE
  #4 (permalink)  
Antiguo 14/09/2010, 07:42
(Desactivado)
 
Fecha de Ingreso: noviembre-2002
Ubicación: Ciudad Autónoma de Buenos Aires
Mensajes: 2.367
Antigüedad: 21 años, 6 meses
Puntos: 317
Respuesta: Impedir que se cierre una aplicación en Win XP

No termino de leer una respuesta, que ya me pones la otra.
Gracias, "servicio" era esa palabra clave que me faltaba.

No entiendo mucho de Visual, pero más o menos me doy cuenta de cómo funciona el primer ejemplo. Y es cierto, el loop cada 5 segundos va a consumir algo de recursos, aunque no creo que mucho. El punto es que si le quito la línea

Código:
@ping -n 5 127.0.0.1 > null
debe ser peor, porque va a repetirse inmediatamente. Supongo que el valor "5" son los segundos, quizá lo pueda aumentar, arriesgándome a que en el intervalo este buen muchacho me cierre el firewall para bajar sus porquerías.

Una duda, si no te parece abuso, ¿qué es "127.0.0.1"?


Lo de los servicios lo voy a estudiar mejor. Creo que la aplicación que ayuda a no editar archivos a mano es "comexp.msc". Lo que no sé es cómo convertir a la aplicación en "Servicio".
Yo me metí en "Servicios Locales", no encontré el nombre del firewall, pero si está el de Windows (que no uso). Ya miré que haciendo click en uno de esos servicios locales aparecen las Propiedades, y allí hay una solapa "Recuperación" con opciones de error ¿sabes si poniendo que ejecute un programa, y como ruta le pongo el mismo programa, se abre de nuevo? ¿o forzar ese loop es riesgoso? Quizá en la última le deba poner que "No haga nada", y ya. Como de todas formas parece que tengo que pasar por un batch que haga monitoreo por bucle, si me lo ahorro de alguna forma con estas opciones sería un avance.

En fin, son más ideas, porque coincido en que va a ser un método más eficiente.

Mi problema es la ignorancia, y no dispongo de mucho tiempo para estudiar antes de que infecten o destruyan esa PC. Y no es algo que vaya a cobrar, lo hago de favor porque me da pena la situación.

Lo que seguro me va a llevar tiempo es el DOS. La última vez que entré a una línea de comandos fue cuando puse una carpeta como "de sistema" para cambiarle el ícono en Win98, ¡fue hace mil años!, y recuerdo que aún sabiendo lo que hacía tardé bastante en acertar cómo ponerla.
Hay un programa de Windows llamado: SC.EXE que permite gestionar los servicios de la PC, asi como agregar nuevos o quitarlos; pero siguen siendo comandos.
Tal como dije, no dispongo de tanto tiempo, y hace ya varios años que empecé a usar el TweakUI y otras herramientas que ahorran trabajo. Vi que existen algunas para hacer también esto, pero no me animo a descargarlas; no conozco a quienes las recomiendan. Pero si sabes de alguna que funcione, por favor me avisas.

Te agradezco mucho y salu2 también para ti.
  #5 (permalink)  
Antiguo 14/09/2010, 09:51
Avatar de dogduck  
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 18 años, 4 meses
Puntos: 19
Respuesta: Impedir que se cierre una aplicación en Win XP

127.0.0.1 es la ip de loopback = localhost

Efectivamente, un servicio ante un error, puede desencadenar un evento y en el puedes definir arrancar "algo", el mismo p.e.

Si lo que quieres es proteger ese pc y que se quede igual que estaba tras el paso de un "Destroyer". Y viendo que no estas muy metido en el tema de scripting, etc ,. ...

Yo que tu le ponía un http://es.wikipedia.org/wiki/Deep_Freeze_%28software%29

salu2
  #6 (permalink)  
Antiguo 22/09/2010, 07:14
(Desactivado)
 
Fecha de Ingreso: noviembre-2002
Ubicación: Ciudad Autónoma de Buenos Aires
Mensajes: 2.367
Antigüedad: 21 años, 6 meses
Puntos: 317
Respuesta: Impedir que se cierre una aplicación en Win XP

Ni Wikipedia se salva del spam.
No, gracias, no creo que me sirva. Ese programa "congela" una imagen del disco y la recupera al reiniciarse o cuando aparece algún malware y queremos volver todo atrás. En esta máquina se instalan programas y se editan documentos todo el tiempo. El único drama es que algún sitio y/o software son peligrosos y las protecciones los bloquean, pero este reverendo ⍨☠๑ῳ☢☄☣↯☹‽ desactiva el firewall o el antivirus o el antispyware para entrar o descargar igual.

La información que se maneja ahí no es crítica, pero si alguien desde internet toma el control y borra o modifica algo antes de que hagan back-up, sería más que un dolor de cabeza.


Sabía que ese número era una dirección IP, aunque no tenía idea de qué. Te agradezco nuevamente el trabajo y la paciencia; en cuanto tenga un (largo) rato con esa PC libre, me siento a tipear y veo qué sale.

Saludos
furoya.
  #7 (permalink)  
Antiguo 22/09/2010, 08:41
Avatar de dogduck  
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 18 años, 4 meses
Puntos: 19
Respuesta: Impedir que se cierre una aplicación en Win XP

Pues la solución es darle permisos usuario o quitarselos.
Ejemplo para un usuario llamado destroyer
inicio > ejecutar > cmd

Miras los grupos al que pertenece el usuario:

C:\>net user destroyer
....
Miembros del grupo local *Administradores
*Usuarios
Miembros del grupo global *Ninguno

Le quitas de administradores

c:\> net localgroup administradores destroyer /del
Se ha completado el comando correctamente.

Si perteneciera a usuarios avanzados idem

c:\> net localgroup "usuarios avanzados" destroyer /del

y ese usuario (destroyer) ya no podrá parar servicios esenciales, ni instalar cosas malas.



de todas formas, hay utilidades para securizar XP, muy buenas como: Windows SteadyState 2.5

http://en.wikipedia.org/wiki/Windows_SteadyState

http://www.microsoft.com/downloads/d...5-9d770ccdb431

Cita:
Ya administre los equipos de un laboratorio de equipos escolar o un cibercafé, una biblioteca o incluso en casa, Windows SteadyState facilita el mantenimiento de los equipos en ejecución de la manera que desea, independientemente de quién los use.

salu2

Última edición por dogduck; 22/09/2010 a las 08:47
  #8 (permalink)  
Antiguo 28/09/2010, 10:27
(Desactivado)
 
Fecha de Ingreso: noviembre-2002
Ubicación: Ciudad Autónoma de Buenos Aires
Mensajes: 2.367
Antigüedad: 21 años, 6 meses
Puntos: 317
Respuesta: Impedir que se cierre una aplicación en Win XP

Voy a mirar esas aplicaciones, pero los privilegios de usuario no creo que me impidan cerrar una aplicación. Si le cambio la categoría no va a poder instalar editores, descargar comprimidos o hacer cambios de configuración ni a nivel de los programas que sí puede usar.

De cualquier forma, parece que adivinara, porque estas últimas semanas se está portando bien y no reventó nada. Igual cuando vaya por ahí voy a ver que hago.

Muchas gracias, muy amable de tu parte tomarte todo este trabajo. Igual, si tengo alguna duda ni pienses que te vas a salvar de la consulta
  #9 (permalink)  
Antiguo 28/09/2010, 12:50
Avatar de dogduck  
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 18 años, 4 meses
Puntos: 19
Respuesta: Impedir que se cierre una aplicación en Win XP

Si el usuario no tiene privilegios de usuario avanzado o administrador no puede parar un servicio en win XP.

De todas formas el Windows SteadyState es muy bueno para capar win.
Salu2

Etiquetas: impedir, xp, win7
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 10:23.