Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.01.2015, 18:13   #1
VladimirMerk
 
Регистрация: 27.01.2015
Сообщений: 3
По умолчанию Подавление окон ошибок

Здравствуйте.
Реально ли написать на C# приложение, которое закрывало бы окна ошибок другого приложения?

Суть:
Есть приложение, в котором используется сторонняя библиотека, которая периодически вываливает критические ошибки, которые не поймать исключением. Нужно написать приложение, которое бы следило за первым и при возникновении такой критической ошибки - закрывало бы ее, или вообще не давало появиться, а после перезапускало первое приложение.

Возможно ли написать такое на C#?
VladimirMerk вне форума Ответить с цитированием
Старый 27.01.2015, 18:23   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Смотря что за приложение, "окна ошибок" разные бывают.
Видимо вам нужно смотреть на функции WinApi. FindWindow/FindWindowEx, EnumThreadWindows и т.п. для поиска окна, SendMessage/PostMessage для отправки какого-нибудь сообщения типа WM_CLOSE, ну или просто процесс убить раз перезапускать надо.

Еще хуком можно окна ловить, но сложнее.


А что за "критические ошибки, которые не поймать исключением"?
И каким образом вы ловите исключения в чужом приложении?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 27.01.2015, 18:30   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
которая периодически вываливает критические ошибки, которые не поймать исключением.
В настройках винды отключи сообщения об ошибках. Если это не поможет то забудь.
Либо исправлять саму жертву либо забить и не использовать неустойчивое ПО совсем.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.01.2015, 18:36   #4
VladimirMerk
 
Регистрация: 27.01.2015
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Смотря что за приложение, "окна ошибок" разные бывают.
Видимо вам нужно смотреть на функции WinApi. FindWindow/FindWindowEx, EnumThreadWindows и т.п. для поиска окна, SendMessage/PostMessage для отправки какого-нибудь сообщения типа WM_CLOSE, ну или просто процесс убить раз перезапускать надо.

Еще хуком можно окна ловить, но сложнее.


А что за "критические ошибки, которые не поймать исключением"?
И каким образом вы ловите исключения в чужом приложении?
Приложение мое, но используется сторонняя библиотека на c++, которая время от времени крэшится и тянет за собой все приложение.
Обычно это APPCRASH в таком виде:


Сейчас, после появление ошибки, приложение закрывается. Второе приложение его перезапускает, но окно с ошибкой продолжает висеть. Собственно и нужно в автоматическом режиме это окно закрыть.

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Еще хуком можно окна ловить, но сложнее.
А можно поподробнее про это?

Последний раз редактировалось VladimirMerk; 27.01.2015 в 18:39.
VladimirMerk вне форума Ответить с цитированием
Старый 27.01.2015, 19:05   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А в AppDomain.CurrentDomain.UnhandledEx ception, Application.ThreadException тоже не ловится?

Что это за библиотека такая, что она делает?

Цитата:
А можно поподробнее про это?
https://msdn.microsoft.com/en-us/lib...=vs.85%29.aspx
https://msdn.microsoft.com/en-us/lib...=vs.85%29.aspx
https://www.google.com/search?q=.net+hook
В .NET с этим вроде есть какие-то сложности, по-моему надо написать библиотеку на чем-то нативном типа C++.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 27.01.2015, 19:25   #6
VladimirMerk
 
Регистрация: 27.01.2015
Сообщений: 3
По умолчанию

AppDomain.CurrentDomain.UnhandledEx ception, Application.ThreadException не ловится, пробовал.
VladimirMerk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подавление и выплеск деструктивных эмоций. ImmortalAlexSan Свободное общение 20 24.03.2014 20:16
Подавление перехода по ссылке russian-stalker JavaScript, Ajax 6 01.05.2011 23:53
Возможен ли отлов ошибок "чужих" программ без скана экрана на предмет окон-ошибок? Человек_Борща Общие вопросы Delphi 4 21.04.2011 00:18
(C++) bad_alloc (подавление/обход) Troi666 Помощь студентам 6 13.08.2009 21:58