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 de ingesoft
1
1
ingesoft, Ing. en Sistemas ,Manejo de base de datos Diseño y elaboración de...
*---------------------------------------- * 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.