Вот функция определяющая запущен ли EXE файл (Если не надо определять PID уберещь, а мне он был нужен)
| Код | bool GetProcessByExeName(DWORD *Pid, AnsiString ExeNameStr)
{ HANDLE hProcessSnap; PROCESSENTRY32 pe32 = {0}; AnsiString temp = "";
hProcessSnap = NULL; hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPALL, NULL); if (hProcessSnap == (void*)-1) { return false; } pe32.dwSize = sizeof(PROCESSENTRY32);
if(Process32First(hProcessSnap,&pe32)) temp = pe32.szExeFile; if((temp.UpperCase()).Pos(ExeNameStr)) { *Pid = pe32.th32ProcessID; CloseHandle (hProcessSnap); return true; } pe32.dwSize = sizeof(PROCESSENTRY32);
while (Process32Next(hProcessSnap,&pe32)) { temp = pe32.szExeFile; if ((temp.UpperCase()).Pos(ExeNameStr)) { *Pid = pe32.th32ProcessID; CloseHandle(hProcessSnap); return true; } pe32.dwSize = sizeof(PROCESSENTRY32); } CloseHandle(hProcessSnap); *Pid = 0; return false; } //---------------------------------------------------------------------
|
Запуск функции
| Код | DWORD PID; if (GetProcessByExeName(&PID, имя EXE - файла)) { EXE - работает }
| |