Visual Basic - Programas en ejecucion sin ventana

Life is soft - evento anual de software empresarial
 
Vista:

Programas en ejecucion sin ventana

Publicado por SetWindowPos (1 intervención) el 20/09/2006 08:19:05
Hola:

Alguien sabe como identificar un programa que esta corriendo no tiene un formulario (Form) activo? Me explico.

Imaginar que un programa esta ejecutandose y el usuario decide cerrar dicho programa. Por diversos errores de programacion (que he de depurar), el programa cierra el formulario o ventana (Unload Me), pero el proceso sigue estando en memoria (lo cual se observa usando el Task Manager), seguramente porque tendre algun tipo de objeto reservado en memoria sin liberar o algun temporizador en ejecucion.

Ahora el usuario desea de nuevo volver a ejecutar dicho programa. Como quiera que se exije que el programa solo se ejecute una vez, el programa identifica que ya esta siendo ejecutado y por tanto no se vuelve a ejecutar.

Rebuscando por Internet he encontrado una forma para hacer visible cualquier ventana, y aunque usando estas funciones con mi programa, Windows es capaz de encontrarlo en memoria (FindWindow), las llamadas a SetForegroundWindow, BringWindowToTop, SetWindowPos no generan ningun tipo de error.

La idea es identificar que aunque el programa esta siendo ejecutado, al intentar visualizar su ventana, esta no es visible.

Espero haberme explicado correctamente.

Muchas gracias por adelantado
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:Programas en ejecucion sin ventana

Publicado por Marcelo (1 intervención) el 20/09/2006 17:54:50
Hola.

No entiendo bien tu pregunta... pero, para el caso de que el programa "desaparezca" de la memoria debes usar la sentencia "End".

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

RE:Programas en ejecucion sin ventana

Publicado por SetWindowPos (1 intervención) el 21/09/2006 09:06:41
Hola.

En primer lugar gracias por la respuesta.

Vamos a ver si me explico un poquitin mejor. Un programa se cierra al ser ejecutado el evento Form_Unload, ¿no? Al pasar por este evento, el formulario se cierra y el programa DEBERIA cerrarse tambien. El problema es que pasa si tienes un temporizador funcionando, pues este parece que sigue corriendo con lo que te quedas sin formulario (cerrado con Form_Unload) pero el programa sigue corriendo.

La pregunta era si es posible detectar este tipo de situaciones, ya que todas las llamadas a reestablecer la ventana (comentadas en el primer mensaje) no dan errores de ningun tipo.

A parte de depurar mejor el programa, creo haber leido en algun sitio que la instruccion End no es muy aconsejable usar ¿me equivoco?

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