FoxPro/Visual FoxPro - Saber si un programa se esta ejecutando

 
Vista:

Saber si un programa se esta ejecutando

Publicado por Jose (12 intervenciones) el 09/05/2009 23:58:59
Necesito saber cuando mi aplicacion se estaejecutando para prohibir dos instancias del mismo programa. Osea que no se pueda abrir dos veces. He creado una rutina que cambia valores en un. Ini cuando lo abro y cambia el valor cuando lo cierro. Pero no me gusta la solucion. Debe haber una forma de chequear si el programa esta en memoria. Alguna idea?
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:Saber si un programa se esta ejecutando

Publicado por alexcoinc (450 intervenciones) el 10/05/2009 16:57:51
ASI SE EJECUTA DESDE EL PROGRAMA INICIAL TUYO.
-----------------------------------------------------------------------------------

IF F_ActivaWin("FACTURACION") && este es el titulo de la venta principal de tu aplicación
messagebox("Programa en ejecución"+chr(13)+chr(13)+;
"Verifique que no este minimizado",48,'Cuidado')
close all
set sysmenu to default
clear events
quit
ENDIF

Esta es la función que hace la verificación:
-----------------------------------------------------------

*-----------------------------
FUNCTION F_ActivaWin(cCaption)
*-----------------------------
LOCAL nHWD
DECLARE INTEGER FindWindow IN WIN32API ;
STRING cNULL, ;
STRING cWinName
DECLARE SetForegroundWindow IN WIN32API ;
INTEGER nHandle
DECLARE SetActiveWindow IN WIN32API ;
INTEGER nHandle
DECLARE ShowWindow IN WIN32API ;
INTEGER nHandle, ;
INTEGER nState
nHWD = FindWindow(0, cCaption)
IF nHWD > 0
RETURN .T.
ELSE
* VENTANA NO ACTIVA
RETURN .F.
ENDIF


Eso es todo.

Buena Suerte.

Alexcoinc
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