Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Is the application already running
Message
 
To
09/10/2002 04:24:09
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Miscellaneous
Thread ID:
00709151
Message ID:
00709163
Views:
30
The following will prevent a second one to start up AND will maximize the first instance:
This will not only detect the window, but will bring it forward, making it the active window. this way the user does not have to look at the task bar.
SET CLASSLIB TO "standards" ADDITIVE
objCheckRun = createobject("checkrun")
if type('objCheckRun') = 'O'
    objCheckRun.windowname = "your app window name"
    if objCheckRun.checkrun()
        release objCheckRun
        quit
    endif
endif
release classlib "standards"
this code is in a class method or it could be a procedure in main.
local WindowName 
WindowName = this.windowname

#define GW_OWNER 4
#DEFINE GW_HWNDFIRST 0
#DEFINE GW_HWNDNEXT 2
declare integer SetForegroundWindow in win32api long lnhWnd
declare integer GetWindowText in win32api integer, string, integer
declare integer GetWindow in win32api integer,INTEGER
declare integer IsWindowVisible in win32api integer
declare integer GetActiveWindow in win32api 
IsWindEx = .F.
if len(WindowName) < 1
    return IsWindEx
endif
foxhwnd = GetActiveWindow() && get the window handle of this window
hwndNext = GetWindow(foxhwnd,GW_HWNDFIRST) && get the handel of the first window

**** loop thru each window to search the title
DO WHILE hwndNext <> 0
    *** if window is not the foxpro handle and not a child window
    IF (hwndnext <> foxhwnd .AND. GetWindow(hwndnext,GW_OWNER) = 0)

        Stuffer = SPACE(64)
        x = GetWindowText(hwndnext,@Stuffer,64)  && get the window text
*** check to see if this is the specified window. 
        IF WindowName $ Stuffer
            IsWindEx = .T.
            =SetForegroundWindow(hwndnext)  && BRING WINDOW TO FRONT
            EXIT
        ENDIF
    ENDIF
    hwndNext = GetWindow(hwndnext,GW_HWNDNEXT)
ENDDO
RETURN IsWindEx
>I need to figure out if my application is already running and display message to the user.
>
>How can this be acheived?
>
>TIA
>
>Munish
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform