Prozess beenden, wenn er läuft



  • Hallo, ich hab leider nichts mit der suche gefunden, darum:
    ICh möchte mit meinem Programm herausfinden ob ein Prozess läuft und wenn ja, möchte ich ihn beenden.

    Leider kann ich nicht wirklich viel mit der WINAPI, also mehr oder weniger nur ein Programm, samt Fenster erstellen. Ist das sehr viel schwieriger, oder brauche ich nur so ca. 2 Funktionen (mit anderen Worten ist es einfach?).



  • Zuerst brauchst du eine wichtige Information, die PID oder ein Prozesshandle. Zur Not geht auch ein HWND, der Name der Anwendung oder der Text im Fenstertitel.



  • Kann ich die rausfinden, oder muss ich die wissen?



  • FindWindow() oder FindWindowEx()
    und dann falls möglich: SendMessage(DeinFensterHandle,WM_CLOSE,0,0);

    Einen Prozess böse killen geht via TerminateProcess()
    aber da sagt die MSDN/PSDK:

    The TerminateProcess function is used to unconditionally cause a process to exit. Use it only in extreme circumstances. The state of global data maintained by dynamic-link libraries (DLLs) may be compromised...

    Mittels CreateToolhelp32Snapshot(),Process32First(), Process32Next() und OpenProcess() könntest du an das handle deines gesuchten Prozesses kommen...


Log in to reply