![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Процессы
Solbon © (2007-06-21 06:27:00)как можно удалить через DELPHI процесс
Инс (2007-06-21 18:03:00) [1]Сергей М.
Спасибо, я в курсе. Немного даже могу подправить, объект удаляется после после того как обнуляется счетчик дескрипторов (так как код user-mode ссылается на объекты через дескрипторы) и после того, как обнуляется счетчик ссылок (так как код kernel-mode ссылается на объекты через указатели, а не дескрипторы). Но судя по формулировке вопроса, автор имел в виду именно завершение процесса, хотя я не телепат, могу и ошибаться.
Сергей М. (2007-06-21 16:22:00) [2]
> Инс (21.06.07 15:51) [3]
Все чудесно, но собственно вызов TerminateProcess "удалением" процесса не занимается - он лишь терминируетпроцесс, что как раз и следует из названия функции.
Удаление же процесса - это удаление объекта, представляющего процесс. А объект, как известно, удаляется после закрытия последнего хэндла из списка ассоциированных с объектом хэндлов.
Инс (2007-06-21 15:51:00) [3]Можно попробывать сначала мягенько. Через SendMessageTimeout послать главному потоку процесса WM-QUIT, а если не выйдет - то TerminateProcess.
Ega23 (2007-06-21 09:14:00) [4]Delphi не удаляет процессы.
Сергей М. (2007-06-21 08:43:00) [5]OpenProcess + TerminateProcess + CloseHandle