Speicherleck



  • Hallo,
    ich kontrolliere über ein Timergesteuerte Funktion alle 5 Sekunden ob ein bestimmter Prozess im TAskmanager noch läuft.
    Durch diese Aktion wird der verfügbare Speicher immer weniger ...
    Kann mir da bitte jemand weiterhelfen ?
    Hier die vorgehensweise:

    //SetTimer(1, 5000,NULL) in der OnInitDialog
    
    OnTimer(UINT nTimerID)
    {
    	ControlProc("MyExe.exe");	
    }
    
    //Die Funktion:
    proc1.dwSize = sizeof(proc1);
    
    	//holen des Handles auf die momentanen Systemprozesse
        hSysSnapshot = CreateToolhelp32Snapshot ( TH32CS_SNAPPROCESS, 0 );
    
    	Process32First(hSysSnapshot,&proc1); 
        proc1.dwSize = sizeof(proc1);
       	 do
    	 {
    		act_proc_name = proc1.szExeFile;
    
    		if(proc.Compare(act_proc_name) == 0)//proc läuf 
    		{
    			pid = 1;
    		}
    
        }while(Process32Next(hSysSnapshot,&proc1));
    
    	 if(pid == 0)//proc läuft nicht
    	 {
    	    WinExec("My.exe",1);
    	 }
    

    Wo liegt hier der Fehler ?



  • CreateToolhelp32Snapshot
    To destroy the snapshot, use the CloseHandle function.

    wenn die funktion create... heisst solltest du immer auf sowas achten


Anmelden zum Antworten