![]() |
Prozesshandles
HI!
Ich habe folgendes Problem. - Ich starte aus meinem Programm heraus ein anderes Programm mit CreateProcess. - Die Prozess-ID wird gesichert. - Nach einiger Zeit wird der Prozess von mir beendet. (Terminate) - Im Win7-Taskmanager werden aber ständig die Handles hochgezählt. Nach einigen Stunden habe ich bereits über 2000 Handles. Code-Ausschnitt - Prozess erstellen if(CreateProcess(Nil,pchar(pProgramName + ' ' + uebergabe),nil,nil,false,NORMAL_PRIORITY_CLASS,nil ,nil,StartupInfo,ProcessInfo) = true) then begin; GetExitCodeProcess(ProcessInfo.hProcess,exestatus) ; if(exestatus = STATUS_PENDING) then begin; vResult := ProcessInfo.hProcess; ThreadId := ProcessInfo.hThread; pdwProcessId := ProcessInfo.dwProcessId; end; end; - Prozess beenden procid := OpenProcess(PROCESS_TERMINATE, false, strtoint(pid)); if(procid <> 0) then begin; // ExitCode laden GetExitCodeProcess(procid,processstatus); // Prozess beenden if(terminateprocess(procid,processstatus) = true) then begin; try closehandle(procid); except end; status := true; end end; - Prozess prüfen procid := OpenProcess(PROCESS_TERMINATE, false, strtoint(pid)); if(procid <> 0) then begin; status := true; end; Wenn ich nach Beendigung des Prozesses prüfe, ob der Prozess noch läuft, wird der beendete Prozess gefunden???? Wie kann ich das verhindern? / Wo liegt der Fehler Grüße Tommy |
AW: Prozesshandles
Delphi-Quellcode:
// - Prozess prüfen
procid := OpenProcess(PROCESS_TERMINATE, false, strtoint(pid)); if(procid <> 0) then begin; status := true; end; ![]() Zitat:
|
AW: Prozesshandles
Doppelpost
|
AW: Prozesshandles
Zitat:
Zum eigentlichen Problem des Themas kann ich mich TiGü nur anschließen: Zu jedem OpenProcess() gehört ein CloseHandle(). MfG Dalai |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz