X
Hi
Da würde ich aber CreateToolhelp32Snapshot() benutzen und mit Process32First() und Process32Next() nachsehen, ob eine chrome.exe läuft (Keine Sorge - die APIs laufen auch auf 64-bit ).
Falls du ausreichend Rechte hast, können dir OpenProcess() und QueryFullProcessImageName() auch den vollständigen Pfad sagen.
Events und andere Objekte von Fremdprozessen zu öffnen kann den Betrieb der Software stören und sollte vermieden werden, es sei denn deren Schnittstellen-Doku verlangt es so.
Der Erzeuger eines Kernel-Objektes kann außerdem festlegen, wer darauf zugreifen darf. Es ist daher nicht sicher, dass du das Event mit SYNCHRONIZE überhaupt öffnen darfst.
Hast du aber die nötigen Rechte, so erzeugst du mit "return OpenEventW(SYNCHRONIZE, FALSE, event_name.c_str()) != NULL;" einen Resource Leak.
Wenn du Objekte öffnest, müsste es zumindest so aussehen
HANDLE h = OpenEvent(...);
if(h != NULL)
{
CloseHandle(h);
return true;
}
else
{
return false;
}
cu