Любой способ удалить значок уведомления в случае сбоя? - PullRequest
1 голос
/ 20 июля 2009

Есть ли способ автоматически удалить NotifyIcon в случае сбоя? (Я знаю, что вы можете навести курсор мыши, чтобы удалить его)

Я использую Windows XP.

Ответы [ 2 ]

5 голосов
/ 20 июля 2009

Для C # попробуйте обработать событие UnhandledException из AppDomain, поэтому в вашем методе Main() добавьте:

AppDomain.CurrentDomain.UnhandledException += 
    new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);

А затем добавьте следующий метод:

static void CurrentDomain_UnhandledException(object sender, 
    UnhandledExceptionEventArgs e)
{
    // .... Remove Notification icon here
}
4 голосов
/ 21 июля 2009

К сожалению, ответ - нет - ответ Роба фактически обнаруживает сбой и пытается удалить значок в обработчике сбоя, который имеет свой собственный набор проблем (например, он предполагает, что во время сбоя работает достаточно CLR выполнить необработанное исключение, это не всегда так).

Проблема в том, что оболочка (которая выполняет код Shell_NotifyIcon) не синхронизируется с вашим приложением.

...