` How to detect if an exe is running (Jens Matschke ) - Icetips Article
Icetips - Templates, Tools & Utilities for Clarion Developers

Templates, Tools and Utilities
for Clarion Developers

Icetips Article

Back to article list   Search Articles     Add Comment     Printer friendly     Direct link  

Par2: How to detect if an exe is running
2011-08-26 -- Jens Matschke
 
MODULE('Windows.DLL') CreateToolhelp32Snapshot(ULONG,ULONG),UNSIGNED,PASCAL,RAW Process32First(UNSIGNED,UNSIGNED),BOOL,PASCAL,RAW Process32Next(UNSIGNED,UNSIGNED),BOOL,PASCAL,RAW CloseHandle(UNSIGNED),BOOL,PASCAL,RAW END I've created a small source procedure to check if a process is running. Simply call: isrunning#=IsProcessRunning('someprocess.exe') This is the code for it: IsProcessRunning PROCEDURE (PProcess) !PProcess parameter of type STRING RVal BYTE locProcessName &CSTRING hProcessSnap UNSIGNED pe32 GROUP,PRE() dwSize ULONG cntUsage ULONG th32ProcessID ULONG th32DefaultHeapID ULONG th32ModuleID ULONG cntThreads ULONG th32ParentProcessID ULONG pcPriClassBase LONG dwFlags ULONG szExeFile CSTRING(260) END TH32CS_SNAPPROCESS EQUATE(02H) CODE RVal=False locProcessName &= NEW(CSTRING(LEN(CLIP(PProcess))+1)) locProcessName=UPPER(CLIP(PProcess)) hProcessSnap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0) IF hProcessSnap=-1 !INVALID_HANDLE_VALUE !MESSAGE('Failed to create process snapshot','Error!') ELSE pe32.dwsize=SIZE(pe32) !Count the number of running processes IF Process32First(hProcessSnap,ADDRESS(pe32)) IF UPPER(pe32.szExeFile)=locProcessName RVal+=1 . LOOP pe32.dwsize=SIZE(pe32) IF Process32Next(hProcessSnap,ADDRESS(pe32)) IF UPPER(pe32.szExeFile)=locProcessName RVal+=1 . ELSE BREAK . . . !IF RVal=1 !process is running (1 instance) ! !ELSIF RVal>=2 !process is running (more than 1 instance -> "RVal" instances) ! !ELSIF RVal=0 !process is not running ! !. IF CloseHandle(hProcessSnap)=0 !MESSAGE('Error ' & shd_GetLastError() & ' closing process snapshot handle','Error!') . . DISPOSE(locProcessName) RETURN RVal


Today is April 20, 2024, 6:06 am
This article has been viewed 35112 times.



Back to article list   Search Articles   Add Comment   Printer friendly

Login

User Name:

Password: