Wie überprüfen ob ein Prozess NICHT läuft?



  • Guten Abend Community,
    ich habe immoment ein kleines Problem.
    Ich will wenn ein Prozess nicht läuft eine MsgBox ausgeben lassen.
    Doch wie kann ich am besten überprüfen ob ein Prozess nicht läuft?
    Ich weiß nur wie man alle laufenden Prozesse mittels Process32First und Process32Next ermittel....



  • Ich würde mal vermuten: Wenn er nicht bei den laufenden Prozessen dabei ist, dann läuft er nicht....

    Oder was hast Du vermutet?



  • hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
    
    		if(Process32First(hSnapshot,&pe32)) //hole ersten prozess
    		{                       
    			do 
    			{         
    		         if(strmcp(pe32.szExeFile,"Test.exe") != 0)
                               MessageBox ( NULL, "Meine Nachricht!", "Test!", MB_OK);
    
    			}
    			while(Process32Next(hSnapshot,&pe32));  //hole nächsten prozess
            }
    

    Ich denke das Problem ist klar oder?



    bool bProzessLaeuftNicht = true;
    

    2. Replace "MessageBox..." durch "bProzessLaeuftNicht = false"
    3. Am Ende fragst Du dann das "bProzessLaeuftNicht" ab...



  • Ja, das Problem ist klar. Dir ist das System hinter Variablen nicht bekannt.

    hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
    BOOL running = false;
    
    if(Process32First(hSnapshot,&pe32)) //hole ersten prozess
    {                       
        do {   
            if(strmcp(pe32.szExeFile,"Test.exe") != 0)
             { running = true; break; }
    
    			}
    			while(Process32Next(hSnapshot,&pe32));  //hole nächsten prozess
            }
    }
    
    if(running == FALSE)
        MessageBox ( NULL, "Meine Nachricht!", "Test!", MB_OK);
    


  • Das wäre bei meinem Code-Review in hohem bogen rausgeflogen 😉

    BOOL, false, true, FALSE... wenn das kein richtiges Durcheinander ist 😋 😉

    Abergesehn davon, dass es den String CaseSensitiv vergleicht und keine COM-Server mit langen Dateinamen erkennen kann 😉



  • a) Ich hab seinen Code kopiert
    b) Ich wollte schnell sein

    Keine Sorge, mein Code ist immer sehr sehr aufgeräumt. So sieht das nicht aus.

    MfG SideWinder



  • @SideWinder: Bei deinem Code erhalte ich keine MsgBox. Der Prozess läuft 100% nicht.



  • Ok hat sich erledigt.
    Thread kann geschlossen werden!



  • SideWinder schrieb:

    a) Ich hab seinen Code kopiert

    Ja sorry... hab es ja gesehen, das es kopiert war... wollte trotzdem meinen Senf loswerden 😉



  • welche Bibliotheken muss ich einbinden?

    der schreibt andauernd Bezeichner nicht gefunden!

    danke

    mfg



  • Von was redest Du?
    Am einfachsten ist es imme rnoch die Hilfe der jeweiligen Funktion anzuschauen... da steht dann i.d.R. unten welche lib benötigt wird.



  • ja danke, aber wie muss ich zb. pe32 deklarieren?
    wie muss ich hSnapshot deklarieren?

    kann damit nicht viel anfangen:

    error C2228: Links von ".szExeFile" muss sich eine Klasse/Struktur/Union befinden.

    wenn ich ne struct draus mach, steht da sogar dass das illegal ist^

    thx nochmal


Log in to reply