Ejecutar aplicación solo cuando no este ya abierta...
Hola que tal tigreFox, perdón la molestia pero necesito nuevamente de tu apoyo, ahora es con respecto a algún código que pueda meter yo en mi programa MAIN de tal forma que busque el proceso "sistemaintegral.exe" dentro de los procesos que se están ejecutando en una plataforma windows xp, y en caso de que lo encuentre maximice la ventana o la pase a enfrente y en caso de que no encuentre el proceso como tal, entonces si, que mande a llamar a mi FORM inicial.
La idea es, no abrir varias veces la aplicación, si esta abierta pasarla a enfrente.
Yo encontré en algún lado un código para buscar las "ventanas" de mi aplicación y antes de mandarlas a llamar, pasarlas enfrente de estar ya abiertas, el código es este, pero no me jalo nunca:
lnHwnd = FindWindow(0, TITULOAPP_LOC)
IF lnHwnd > 0
*!* Si ya se habia arrancado antes la aplicación
BringWindowToTop(lnHwnd) && Mandar la ventana de la aplicación al frente
SendMessage(lnHwnd, WM_SYSCOMMAND, SC_MAXIMIZE ,0) && Maximizar la ventana de la aplicación
ELSE
*!* Si no se habia arrancado antes la aplicacion,
_SCREEN.Caption = TITULOAPP_LOC && Establecer título de la aplicacion
*!* Liberar variables locales
RELEASE lnCnt, lnHwnd, lcNewDir, laVFPBars
posiblemente el codigo este bien o solo le falte algo, pero como mis ventanas tienen diferentes nombres que los aqui declarados, nunca logre hacer que jalaran en mi programa, entonces alguien me dijo que en lugar de ventanas es mas facil buscar el proceso activo de mi programa antes de abrirlo nuevamente.
¿Serias tan amable de guiarme un poco acerca de como buscar procesos en winxp? ¿Alguna otra forma que se te ocurra que pueda hacer esto?
¿Habría la posibilidad de que me mandaras algún ejemplo de esto que tengas a mi correo? Mi correo es [email protected] . De antemano muchas gracias por cualquier orientación que me puedas dar. Saludos!.
La idea es, no abrir varias veces la aplicación, si esta abierta pasarla a enfrente.
Yo encontré en algún lado un código para buscar las "ventanas" de mi aplicación y antes de mandarlas a llamar, pasarlas enfrente de estar ya abiertas, el código es este, pero no me jalo nunca:
lnHwnd = FindWindow(0, TITULOAPP_LOC)
IF lnHwnd > 0
*!* Si ya se habia arrancado antes la aplicación
BringWindowToTop(lnHwnd) && Mandar la ventana de la aplicación al frente
SendMessage(lnHwnd, WM_SYSCOMMAND, SC_MAXIMIZE ,0) && Maximizar la ventana de la aplicación
ELSE
*!* Si no se habia arrancado antes la aplicacion,
_SCREEN.Caption = TITULOAPP_LOC && Establecer título de la aplicacion
*!* Liberar variables locales
RELEASE lnCnt, lnHwnd, lcNewDir, laVFPBars
posiblemente el codigo este bien o solo le falte algo, pero como mis ventanas tienen diferentes nombres que los aqui declarados, nunca logre hacer que jalaran en mi programa, entonces alguien me dijo que en lugar de ventanas es mas facil buscar el proceso activo de mi programa antes de abrirlo nuevamente.
¿Serias tan amable de guiarme un poco acerca de como buscar procesos en winxp? ¿Alguna otra forma que se te ocurra que pueda hacer esto?
¿Habría la posibilidad de que me mandaras algún ejemplo de esto que tengas a mi correo? Mi correo es [email protected] . De antemano muchas gracias por cualquier orientación que me puedas dar. Saludos!.
1 Respuesta
Respuesta de tigrefox
1