#define WINVER 0x0500 #include <psapi.h> //Also link to psapi.lib BOOL IsTSReaderRunning() { DWORD * pProcesses = LocalAlloc(LPTR, sizeof(DWORD) * 1024); DWORD dwReturned; BOOL fRetVal = FALSE; if (EnumProcesses(pProcesses, sizeof(HANDLE) * 1024, &dwReturned) != FALSE) { int i; for (i = 0; i < (int)(dwReturned / sizeof(HANDLE)); i++) { HANDLE hProcess; char szFileName[MAX_PATH]; DWORD dwModuleReturned; hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pProcesses[i]); if (hProcess != NULL) { HMODULE * pModules = LocalAlloc(LPTR, sizeof(HMODULE) * 1024); if (EnumProcessModules(hProcess, pModules, sizeof(HMODULE) * 1024, &dwModuleReturned) != FALSE) { if (GetModuleBaseName(hProcess, pModules[0], szFileName, sizeof(szFileName)) != FALSE) { strlwr(szFileName); if (strcmp(szFileName, "tsreader.exe") == 0) fRetVal = TRUE; if (strcmp(szFileName, "tsreaderlite.exe") == 0) fRetVal = TRUE; } } LocalFree(pModules); CloseHandle(hProcess); } } } LocalFree(pProcesses); return fRetVal; }