Prozessnamen finden
-
Hi,
hat jemand zufällig einen Codeschnippsel für mich, wie ich einen Prozessnamen finden kann? Möchte suchen, ob der Server läuft.
-
Meinst Du Service?
http://www.codeproject.com/KB/system/serviceskeleton.aspx
-
Nein, ich möchte wissen, ob der Prozess "httpd" gerade läuft. Wenn ja, soll mein Prograsmm sich beenden, wenn nicht soll er diesen Prozess starten. Mein Problem ist nur, herauszufinden, wie man sehen kann, ob ein Prozess gestartet ist.
-
unsigned GetPIDbyName(TCHAR *ProcessName) { HANDLE hProcessSnap; PROCESSENTRY32 pe32; hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if(hProcessSnap == INVALID_HANDLE_VALUE) return 0; else { pe32.dwSize = sizeof(PROCESSENTRY32); Process32First(hProcessSnap, &pe32); do { if(!_tcsicmp(pe32.szExeFile, ProcessName)) { CloseHandle(hProcessSnap); return pe32.th32ProcessID; } } while(Process32Next(hProcessSnap,&pe32)); } return 0; }Diese Funktion gibt 0 zurück, wenn er nicht aktiv ist.
Wenn der Prozess aktiv ist, gibt er seine Prozess ID zurück.
-
Danke, aber hier gibt es noch einen Fehler:
if(!_tcsicmp(pe32.szExeFile, ProcessName))_tcsicmp kenne ich nicht und habe ich auch wohl nicht (MFC?). Wie kann ich das umgehen?
-
du musst TCHAR.h inkludieren.