2013-04-04 1 views
1

я пишу на небольшой инструмент, который должен смотреть на мой сервер писать мне письма, когда что-то пошло не так, как слишком высокое потребление оперативной памяти и т.д. ...C# сбой программы/закрывании на сворачивание в системный трей

теперь к моей проблеме, Я хочу свести к минимуму мою программу в системном трее, и она отлично работает :) Я вижу в течение нескольких секунд значок в лотке. после этого моя программа ушла ... закрыта ... не знаю, что процесс отсутствует: D.

Вот мой код, чтобы минимизировать в трей:

InitializeComponent(); 
var icon = new NotifyIcon(); 
icon.Icon = new Icon("watchdog.ico"); 
icon.Visible = true; 
icon.DoubleClick += 
     delegate(object sender, EventArgs args) 
     { 
      this.Show(); 
      this.WindowState = WindowState.Normal; 
     }; 

protected override void OnStateChanged(EventArgs e) 
     { 
      if (WindowState == WindowState.Minimized) 
       this.Hide(); 

      base.OnStateChanged(e); 
     } 

Я надеюсь, что и может мне помочь.

+2

без фактического исключения, это трудно сказать, что происходит. Вы должны приложить отладчик и отключить исключения. –

+2

Хорошо, вы пробовали отлаживать и получать какое-то исключение? Если вы не можете этого сделать, используйте какой-то инструмент ведения журнала. Наличие трассировки стека и сообщение об ошибке помогут в этом. – tnw

+1

Вы должны получить некоторый намек на то, что произошло в Event Viewer. – Aybe

ответ

0

На сервере 2012 года я также получал исключение при сворачивании в лоток, но он отлично работал бы на компьютерах под управлением Windows 7 Pro. После того, как я был в состоянии удаленно отлаживать проблема была вполне ясна:

Исключение брошено: «System.ArgumentException» в System.Windows.Forms.dll

Дополнительная информация: Balloon текст наконечник должен иметь не -пустое значение.

Исправление добавить баллонной текст наконечник к иконе:

var icon = new NotifyIcon(); 
icon.BalloonTipText = "Program is minimized. Click the tray icon to restore it.";