Como saber si el programa esta ejecutado mas de una vez?

849 views
Skip to first unread message

magdalena concepcion cañete fretes

unread,
Dec 6, 2010, 8:21:08 AM12/6/10
to Comunidad de Visual Foxpro en Español
hola amigos...
quisiera saber como hacer para corte de caja , si el sistema se esta
ejecutando mas de una sola vez...
gracias :)

Luis Leon

unread,
Dec 6, 2010, 8:29:14 AM12/6/10
to foro vfp
 
Amiga Usa esto :
 
 
IF YaActiva()
   Return (.f.)
EndIf
 
*----------------------------------------
* 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 se encuentra en ejecución : "+lcCaption,16,"Empresa abc Sac")
llRet = .T.
EndIf
_SCREEN
.Caption = lcCaption
Return (llRet)
EndFunc
*----------------------------------------
*----------------------------------------
* FUNCTION IsActive(tcCaption)
*----------------------------------------
* Verifica si una aplicación ya está activa
* USO: ? IsActive("Calculadora")
*----------------------------------------
* ? IsActive("Nombre aplicacion")
Function IsActive(tcCaption)
Declare INTEGER FindWindow IN WIN32API ;
STRING cNULL, ;
STRING cWinName
Return FindWindow(0, tcCaption) # 0
EndFunc

 
> Date: Mon, 6 Dec 2010 05:21:08 -0800
> Subject: [vfp] Como saber si el programa esta ejecutado mas de una vez?
> From: pich...@hotmail.com
> To: publice...@googlegroups.com

magdalena concepcion cañete fretes

unread,
Dec 6, 2010, 8:36:38 AM12/6/10
to Comunidad de Visual Foxpro en Español
gracias Luis....lo voy a probar y te aviso cualquier cosita......=)

ibania blanco

unread,
Dec 8, 2010, 5:30:06 PM12/8/10
to Comunidad de Visual Foxpro en Español
amiga coloca esto al inicio de inicio.prg

_SCREEN.CAPTION = "magdalena"
IF YaEstaActivo()
loLogo = .NULL.
RETURN
ENDIF

y al final de inicio.prg
coloca esto

*------------------------------------------------------
* FUNCTION YaEstaActivo()
* - - - - - - - - - - - - - - - - - - - - - - - - - - -
* Verifica si el programa ya está activo
* Retorna: .T. ó .F. si esta activo o no activo
*------------------------------------------------------
FUNCTION YaEstaActivo()
LOCAL lcCaption, llRet
DECLARE INTEGER FindWindow IN WIN32API ;
STRING cNULL, STRING cWinName
lcCaption = _SCREEN.CAPTION
_SCREEN.CAPTION = '_' + lcCaption
lnHWnd = FindWindow(0, lcCaption)
IF lnHWnd # 0
DECLARE INTEGER SetForegroundWindow IN user32;
INTEGER hWindow
DECLARE INTEGER ShowWindow IN user32;
INTEGER HWND, ;
INTEGER nCmdShow
SetForegroundWindow(lnHWnd)
ShowWindow(lnHWnd, 9)
llRet = .T.
ELSE
llRet = .F.
ENDIF
_SCREEN.CAPTION = lcCaption
RETURN llRet
ENDFUNC

lo que hace es que si ya esta activa tu exe, te lo activa y no habre
mas

Maggi Fretes

unread,
Dec 8, 2010, 8:19:04 PM12/8/10
to publice...@googlegroups.com
graciasssssssss ibianaaaa................te lo agradesco un monto :)
Reply all
Reply to author
Forward
0 new messages