Как средствами дельфи можно уничтожить процесс другой программы?
Убить чужой процесс
Убить чужой процесс
|
19.06.2010 13:52:37
|
|
|
|
|
|
19.06.2010 13:55:34
Функцией TerminateProcess(), только учтите, что это асинхронная функция, так что когда она вернет управление вашей программе, процесс еще может быть и не уничтожен. Так же следует учесть, что это "аварийная" функция и все данные процесса будут потеряны. Полноценное "убийство", лол.
|
|
|
|
|
|
11.11.2010 06:19:17
Можно командой API. Kill, там в ней пердается процесс и команда kill. Короче я это неочень хорошо знаю. Но много об этом написано книг.
|
|
|
|
|
|
14.12.2010 10:12:55
код Pascal/Delphi:
function KillTask(ExeFileName: string): integer; const PROCESS_TERMINATE=$0001; var ContinueLoop: BOOL; FSnapshotHandle: THandle; FProcessEntry32: TProcessEntry32; begin result := 0; FSnapshotHandle := CreateToolhelp32Snapshot (TH32CS_SNAPPROCESS, 0); FProcessEntry32.dwSize := Sizeof(FProcessEntry32); ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32); while integer(ContinueLoop) <> 0 do begin if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) = UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) = UpperCase(ExeFileName))) then Result := Integer(TerminateProcess(OpenProcess( PROCESS_TERMINATE, BOOL(0), FProcessEntry32.th32ProcessID), 0)); ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32); end; CloseHandle(FSnapshotHandle); end;
Cyber
|
|
|
|
|
|
14.12.2010 10:19:29
Интересно другое,как бы сделать програмку которая следит за приложением в моё отсутствие,узнаёт зависший процесс и убивает его(то есть чтобы не перебирать все процессы в ручную)
Cyber
|
|
|
|
|
|
26.12.2010 16:09:06
Тоже хотел бы знать как можно узнать зависший процесс.
Accende lumen sensibus, infude ainorem corbidus!
|
|
|
|
|
|
26.12.2010 16:12:39
Если это оконное приложение то можно отправить ему сообщение и посмотреть ответит оно или нет.
|
|
|
|
|
|
26.12.2010 16:35:51
Правильно, как же я сам об этом не подумал. Спасибо.
Accende lumen sensibus, infude ainorem corbidus!
|
|
|
|
|
|
26.12.2010 16:51:21
Не за что. Кстати если нужно только найти такое окно, то думаю можно искать текст в заголовке "не отвечает".
|
||||
|
|
|
|||
Читают тему (гостей: 1, пользователей: 0, из них скрытых: 0)