#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;
}