Visual Basic - Mantener proceso abierto

Life is soft - evento anual de software empresarial
 
Vista:

Mantener proceso abierto

Publicado por Neofito (1 intervención) el 10/09/2006 20:36:07
Hola,

Soy algo nuevo en esto, desde hace unos meses estoy intentando escribir una aplicación que trabaje de la siguiente manera:

Dados los registros de rutas de x programas, por ejemplo:

%SystemRoot%\system32\calc.exe

Controle cada x tiempo si se están ejecutando y de no ser así los ponga en marcha guardando un registro de cuando tuvo que llevar a cavo el proceso.

Investigando descubrí como trabajar para cerrarlos empleado WMI, de hecho el formulario de ejemplo esta enfocado justamente a lo que yo necesito pero a la inversa, permanece residente y elimina las aplicaciones listadas dejando un registro del evento.

http://www.recursosvisualbasic.com.ar/htm/utilidades-codigo-fuente/cerrar_procesos_wmi.htm

Tras estudiar mas, descubrí que puedo pasarle parámetros de apertura, pero no se como hacer que los tome de un archivo o lista, parece ser que solo puedo encaminarlo a esto:

lValDev = ShellExecute(que, "operación", "archivo", "parámetros", "directorio", x)

Es posible realizar esto que pretendo en este lenguaje o deveria buscar alternativas, pues todo he de enfocado, al control de procesos en servidores.

Cualquier ayuda o pista la agradecería de verdad, pues en estos momentos ando bloqueado.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Mantener proceso abierto

Publicado por Matías Freire (421 intervenciones) el 14/09/2006 21:44:20
lo que puedes hacer es lo siguiente:

1) con el codigo fuente que encontraste de WMI, puedes identificar qué aplicaciones están corriendo. con eso puedes hacerte un listado (por ejemplo, en un array o una collection)

2)en un archivo de texto plano, tendrías que tener la lista de aplicaciones a mantener ejecutándose

3) si alguno de los archivos no se encuentra corriendo, usas el shellexecute para levantarlo.

4)acá te doy una pequeña idea de los pasos a seguir

Array ListaApp
Array ListaActual
Boolean Encontrado

ListaApp = LeerListaAplicaciones (ArchivoTexto)

CADA x Tiempo
ListaActual = ObtenerAplicacionesEnEjecucion (WMI)
PARA i = 1 HASTA ListaApp.CantidadItems
Encontrado = False

PARA j = 1 HASTA ListaActual.CantidadItems
SI ListaApp(i) = ListaActual(j) ENTONCES
Encontrado = True
SALIR PARA
FIN SI
FIN PARA

SI Encontrado = False ENTONCES
ShellExecute ( ListaApp (i) )
FIN SI
FIN PARA

FIN CADA

Espero que esto te haya servido.

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar