| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > Как убить зависший процесс? |
| Автор: bmmshayan 18.12.2009, 09:46 |
| Разрабатываю программу которая следит за приложением в отсутствие человека. Программа иногда зависает, т.е. процессор на максимум и/или просто зависший процесс который нужно вручную убивать из диспетчера задач. Имя процесса известно (т.е. суть не в переборе всех процессов)! Как средствами Delphi это сделать? Заранее спасибо. |
| Автор: Данкинг 18.12.2009, 11:15 | ||
|
| Автор: bmmshayan 18.12.2009, 11:30 |
| Данкинг Большое спасибо за функцию которая убивает процесс. Но вот вопрос: Как мне узнать что процесс завис? И убьет ли эта функция именно зависший не отвечающий процесс? |
| Автор: Данкинг 18.12.2009, 12:00 |
Не знаю, но боюсь, что на 100% ты всё равно это не определишь, поскольку часто бывает, что винда пишет "не отвечает", но программа на самом деле работает. Добавлено через 26 секунд Да, должна. |
| Автор: Keeper89 18.12.2009, 13:49 |
ИМХО либо из другого приложения, либо в своем запустить отдельный поток на отслеживание зависания. |
| Автор: bmmshayan 18.12.2009, 15:01 |
| Данкинг Ну и на том спасибо! Keeper89 Да в том то и дело что я слежу за другим приложением. Но не знаю как определять "зависание"... |
| Автор: bmmshayan 18.12.2009, 16:44 |
| Ну а хотябы как узнать % нагрузки программой на процессор момент проверки? |
| Автор: Демо 18.12.2009, 17:20 | ||
Для этого тебе весь список процессов анализировать нужно. |
| Автор: dvamaster 22.12.2009, 08:32 |
| EndTask в хелпе есть, а в модулях не декларирована |
| Автор: Rennigth 22.12.2009, 09:32 | ||
А если процесс завис на бесконечном цикле? Демо прав, надо организовывать какой-нить KeepAlive. |