Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Need to know if VFP app is already running in Windows
Message
 
 
To
16/04/2000 09:08:52
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Miscellaneous
Thread ID:
00360015
Message ID:
00360157
Views:
10
>Can you please post the code for those of us that can't look up a thread by the number?

Here you go. In your main.prg put



* check if the program is open already by checking for your application title
if ckrun("HeksasCoolDatabaseApp")
quit
endif




The function is then:
**********************************************************
* detects if program is already running
* if it is then it shuts down

FUNCTION ckrun
PARAMETERS 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 .t.
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

*********************************
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform