Есть программка, которая при опред. условиях сменяет значок в трее, значок берется из imageList'а. Присваивание выполняется след. функцией:
| Код | this.notifyIcon1.Icon = Icon.FromHandle(((Bitmap)imageList1.Images[0]).GetHicon());
|
Проблема состоит в том, что когда я прихожу по утрам на работу я вижу ошибку этого приложения, которая выглядит так:
| Код | System.Runtime.InteropServices.ExternalException was unhandled Message="A generic error occurred in GDI+." Source="System.Drawing" ErrorCode=-2147467259 StackTrace: at System.Drawing.Bitmap.GetHicon() at ChangingForms.Form1.timer1_Tick(Object sender, EventArgs e) in D:\temp\ConnectionChecker\ConnectionChecker\Form1.cs:line 35 at System.Windows.Forms.Timer.OnTick(EventArgs e) at System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg) at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData) at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context) at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context) at System.Windows.Forms.Application.Run(Form mainForm) at ChangingForms.Program.Main() in D:\temp\ConnectionChecker\ConnectionChecker\Program.cs:line 17 at System.AppDomain.nExecuteAssembly(Assembly assembly, String[] args) at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args) at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() at System.Threading.ThreadHelper.ThreadStart_Context(Object state) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadHelper.ThreadStart()
|
Самый прикол состоит в том, что во время рабочего дня, это ни разу! не проявлялось, у меня есть подозрение, что ошибка проявляется только когда комп "залочен"(сочетание клавиш Win+L), именно в таком состоянии я оставляю его уходя с работы.
Я пробовал менять иконку в трее вот таким способом:
| Код | this.notifyIcon1.Icon = Icon.FromHandle(((Bitmap)imageList1.Images[imageList1.Images.IndexOfKey("OK.ico")]).GetHicon());
|
Но в итоге получаю ту же ошибку... Буду рад любым советам, т.к. над проблемой бьюсь уже давно. |