У меня есть приложение Windows, в котором работает какое-то дорогое оборудование; это приложение умирает разнообразными творческими способами. Обычно, когда это происходит, процесс полностью умирает. Я написал небольшую программу мониторинга, которая ищет имя процесса в списке вещей, которые в настоящее время работают, и это отлично работает для этих сбоев. Но иногда он просто становится полностью невосприимчивым и требует завершения через диспетчер задач, но все еще «работает» в некотором бесполезном смысле.Проверка «живой» приложения Windows?
Я совершенно не знаком с Windows API, так что это, возможно, довольно растянуто, но есть ли что-нибудь, что я могу сделать, чтобы программно проверить «живучесть» других процессов? Или что я могу использовать, чтобы делать догадки? (Наблюдая за тем, чтобы он прекратил обработку событий из ОС или для полного доступа к диску/распределения памяти для остановки и т. Д. И т. Д.)
Предпочтительно, это было бы что-то, что я мог бы сделать с помощью модуля win32 для Python, но я отвечу на все, что может успешно обнаружить, когда эта вещь закроется. И я понимаю, что «живучесть» неясна, но я не хочу ничего из этого делать, особенно когда у меня нет никакого представления о том, как эта вещь действительно терпит неудачу.
дорогая техника ?? Что это такое? Я также думаю, что вы должны решить свою проблему изнутри, а не извне. –
Если бы это был вариант, это было бы здорово, и я бы преследовал его. Это не вариант. Это вполне разумная проблема, так как мир полон закрытого программного обеспечения, на котором работают важные машины. На самом деле, я не хочу вдаваться в подробности о точном программном обеспечении или машине, потому что для меня нет поддержки. Крошечный риск того, что производитель может встревожить жалобы, просто не стоит удовлетворять ваше любопытство. Я только упомянул оборудование, чтобы мотивировать мое желание ответа и отложить предложения «просто использовать что-то другое». –
Я думаю, что решение зависит от того, что именно висит. Если это окно, то предложение SecurityMatt звучит неплохо. В противном случае, я думаю, вам просто нужно «проверить» приложение, чтобы найти какое-то уведомление о том, что приложение отправляет сообщение «Я жив» или «Я собираюсь повесить». Если нить не была явно приостановлена, я не знаю какого-либо флага, о котором я знаю, что говорит о зависании потока (например, в бесконечном цикле). –