0
Да, я знаю, - одна из следующих строк будет делать это, как правило:Выход из приложения Windows Forms?
AppDomain.CurrentDomain.ProcessExit += OnApplicationExit;
Application.ApplicationExit += OnApplicationExit;
void OnApplicationExit(object sender, EventArgs eventArgs) { ... }
Но что, когда один не использовать какие-либо формы в приложении WinForms? Сделать это скрыто приложение для Windows - это не сервис. Оба приведенных выше примера не работают для меня.
Вот как я запускаю свое приложение WinForms. Как вы можете видеть, что я не прохожу какую-либо формы к методу Run
public static void Main()
{
InitMyApp();
// Here I tried to subscribe to the above shown events => didn't work.
Application.Run();
}
'AppDomain.ProcessExit' отлично работает для меня в консольном приложении (то есть без форм). В вашем примере нет попытки использовать метод _either_. Пожалуйста, укажите [хороший, _minimal_, _complete_ пример кода] (http://stackoverflow.com/help/mcve), который наглядно иллюстрирует ваш вопрос. –
@PeterDuniho Ну нет способа сделать скрытое консольное приложение - AFAIK. Вот почему я специально спросил WinForms. Создайте проект WinForms и удалите содержимое 'Main()' и просто сделайте 'Application.Run()' =>, он будет запущен, но * скрыт *. Обновлен мой вопрос, чтобы сделать вещи, надеюсь, более ясными – Brettetete
Это может помочь? http://stackoverflow.com/questions/20675024/when-will-appdomain-processexit-not-get-called и http://stackoverflow.com/questions/1157009/application-exit-even-not-firing-in- c-sharp-windows-application –