Registriert seit: 12. Jul 2004
Ort: Oberfranken
661 Beiträge
FreePascal / Lazarus
|
AW: "tote" Instanzen finden und beenden?
8. Mär 2011, 08:24
Okay, dann würde die entsprechende Code-Sequenz wohl so aussehen:
Delphi-Quellcode:
repeat
h := FindWindowEx(0, h, 'TApplication', PChar(Application.Title));
if (h <> 0)
and (h <> Application.Handle) then
begin
//prüfen, ob die Instanz hängt
if (SendMessageTimeOut(h, WM_NULL, 0, 0, SMTO_NORMAL or SMTO_ABORTIFHUNG,
5000, RetValue) = 0) then
begin
//ProzessId des hängenden Prozesses holen
GetWindowThreadProcessId(h, ProcessId);
if (ProcessId = 0) then
Continue;
//hängenden Prozess beenden
hProcess := OpenProcess(PROCESS_TERMINATE, False, ProcessId);
if (hProcess <> 0) then
try
TerminateProcess(hProcess, 255);
finally
CloseHandle(hProcess);
end;
end;
end;
until (h = 0);
Jeder kann ein Held werden und Leben retten!
Einfach beim NKR oder der DKMS als Stammzellenspender registrieren! Also: worauf wartest Du noch?
Geändert von HeikoAdams ( 8. Mär 2011 um 09:16 Uhr)
|
|
Zitat
|