Page 1 of 1

IsForeground() ??

Posted: Thu Sep 20, 2012 7:18 am
by MarcoBoschi
Does exist a function which tells me if the application is foreground()?
In this little program instead of TIME() the value of this function
"Foreground" OR "Background"

Many thanks
Marco

Code: Select all

#include "fivewin.ch"

FUNCTION MAIN()
LOCAL oMain
DEFINE WINDOW oMain

ACTIVATE WINDOW oMain ON INIT dialogo()

RETURN NIL

FUNCTION DIALOGO()
LOCAL oDlg
LOCAL oSay
LOCAL oTimer 

DEFINE DIALOG oDlg

@ 1 , 1 SAY oSay PROMPT "PROVA" OF oDlg

DEFINE TIMER oTimer OF oDlg INTERVAL 1000 ACTION oSay:settext( TIME() )

ACTIVATE DIALOG oDlg ON INIT ( oTimer:hWndOwner := oDlg:hWnd , oTimer:Activate()  )

RELEASE TIMER oTimer

RETURN NIL
 

Re: IsForeground() ??

Posted: Thu Sep 20, 2012 7:31 am
by MarcoBoschi
solved!

Code: Select all

#include "fivewin.ch"

STATIC hWnd

FUNCTION MAIN()
LOCAL oMain


DEFINE WINDOW oMain

ACTIVATE WINDOW oMain ON INIT dialogo()

RETURN NIL

FUNCTION DIALOGO()
LOCAL oDlg
LOCAL oSay
LOCAL oTimer


DEFINE DIALOG oDlg

@ 1 , 1 SAY oSay PROMPT "PROVA" OF oDlg

DEFINE TIMER oTimer OF oDlg INTERVAL 1000 ACTION oSay:settext( IIF( isforeground() , "Foreground" , "Back" ) )

ACTIVATE DIALOG oDlg ON INIT ( oTimer:hWndOwner := oDlg:hWnd , oTimer:Activate()  ) ;
                     ON PAINT hWnd := GETFOREGROUNDWINDOW()

RELEASE TIMER oTimer

RETURN NIL

FUNCTION ISFOREGROUND()
LOCAL lRitorna := .T.
IF GETFOREGROUNDWINDOW() <> hWnd
   lRitorna := .F.
ENDIF
RETURN lRitorna



DLL32 FUNCTION GETFOREGROUNDWINDOW() AS LONG PASCAL FROM "GetForegroundWindow" LIB "user32.dll"
 

Re: IsForeground() ??

Posted: Thu Sep 20, 2012 8:25 am
by Eoeo
nice!