| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > Остановить зависшую службу |
| Автор: neweraser 5.6.2018, 09:16 | ||||
| Доброго времени суток! Суть в чем, есть программа, некая оболочка для запуска своих самописных служб. Если служба кривая (как и мои руки иногда) - бывают моменты, что она зависает на запуске в статусе "Start pending", помогает только ребут или следующие действия в cmd:
где PROCESS_PID_NNN - номер процесса для остановки. В WinApi я не разбираюсь, использую готовые процедуры, например:
Но приведенный выше код останавливает только корректно запущенную службу. Есть ли какое-то решение на WinApi для остановки зависшей службы или мне смотреть в сторону cmd по PID процесса? Поиск не дал результатов, решения так и не нашел. |
| Автор: navodri 5.6.2018, 12:15 |
| Посмотри вот http://win32api-library.hol.es/. Там много пример на айпи. Может, что-то поможет. |
| Автор: neweraser 5.6.2018, 14:42 |
| navodri, не нашел то что мне нужно, да и она немного платная. А вы всем на форуме ее рекомендуете? |
| Автор: Snowy 5.6.2018, 17:20 | ||
| Ну раз сервис не отвечает, значит нужно его смертельно убивать насмерть. Как-то так:
По сути это и есть sc queryex SERVICENAME taskkill /PID PROCESS_PID_NNN |