Draait een programma al?
Door jasperdg op 16 Jul 2007
Het is soms niet handig als je een programma start terwijl dit al draait. Vooral bij programma’s die bewerkingen uitvoeren op databases is dit zeer ongewenst (indexeer programma’s etc). Hier een geschikte module die met Win32Api functies de actieve vensters uitleest en kijkt of een specifiek programma in de actieve titels voorkomt…
Met dank aan FoxStuff.
Programma IsRunning.prg :
(0 als niet gevonden, anders het handle nummer)
* Generic routine to check if a given * application is running on the user's system. * Parameter is all or part of the window's title. LPARAMETERS tcTitle DECLARE INTEGER GetActiveWindow IN Win32API DECLARE INTEGER GetWindow IN Win32API ; INTEGER hWnd, INTEGER nType DECLARE INTEGER GetWindowText IN Win32API ; INTEGER hWnd, STRING @cText, INTEGER nType lhNext = GetActiveWindow() && current app's window * iterate through the open windows DO WHILE lhNext#0 lcText = REPLICATE(CHR(0),80) GetWindowText(lhNext,@lcText,80) && get window title IF UPPER(ALLTRIM(tcTitle)) $ UPPER(lcText) * parameter text is present in window title RETURN lhNext ENDIF lhNext = GetWindow(lhNext,2) && next window ENDDO * required window not found RETURN 0