Como codificar que un exe ya esta en uso

Hola! Deseo saber como codificar si el usuario intenta abrir dos veces la aplicación sin tener problemas con otros usuarios que utilizan el prog por red...
Gracias de antemano! Saludos a todos!

1 respuesta

Respuesta
1
*----------------------------------------
* FUNCTION IsActive(tcCaption)
*----------------------------------------
* Verifica si una aplicación ya está activa
* USO: ? IsActive("Calculadora")
*----------------------------------------
FUNCTION IsActive(tcCaption)
DECLARE INTEGER FindWindow IN WIN32API ;
STRING cNULL, ;
STRING cWinName
RETURN FindWindow(0, tcCaption) # 0
ENDFUNC
*----------------------------------------
Con esta función podemos comprobar si nuestra aplicación de Visual FoxPro ya ha sido iniciada en una PC y así no iniciarla nuevamente. Para lograrlo escribiremos una función que se invoca en el inicio de nuestra aplicación, luego de haber colocado el titulo a nuestra ventana principal.
*----------------------------------------
* FUNCTION YaActiva()
*----------------------------------------
* Comprueba que la aplicación no se esta ejecutando
* Invoca a IsActive() descripta anteriormente
*----------------------------------------
FUNCTION YaActiva()
LOCAL llRet, lcCaption
llRet = .F.
lcCaption = _SCREEN.Caption
*--- Renombra temporariamente el caption de la app
_SCREEN.Caption = "_" + lcCaption
IF IsActive(lcCaption)
*--- Si ya esta activo
MESSAGEBOX("Este sistema ya está activo",16,"Aviso")
llRet = .T.
ENDIF
_SCREEN.Caption = lcCaption
RETURN llRet
ENDFUNC
*----------------------------------------
Si la función YaActiva() retorna .T., entonces ya hay una instancia de la aplicación activa, y debemos cancelar la nueva ejecución.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas