Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Total running instances of an application
Message
Information générale
Forum:
Visual Basic
Catégorie:
Fonctions API de Windows
Divers
Thread ID:
00266268
Message ID:
00266391
Vues:
18
>  I want to find the total number of running instances of any particular windows application.
>  Earlier there use to be two APIs for the same, viz., GetWindowHandle & GetWindowUsage in kernel.dll but not anymore in kernel32.dll. Please suggest any APIs that accomplish the required task, or any other direct way in Visual Basic to acheive the same.

Here is a Visual Foxpro example that uses the windows api to detect if a app is already open by the window title. You should be able to convert it to vb

I don't recall the author of this code:

**********************************************************
* 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
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform