From 24d88d5d87d79b251e4f85624e8bbf706d9943e4 Mon Sep 17 00:00:00 2001 From: Markus Hofknecht Date: Tue, 25 Feb 2020 19:06:03 +0100 Subject: [PATCH] #35 [BUG] Rare ObjectDisposedException, => catch ObjectDisposedException as warning, get exceptions with full debug information, version 0.9.1.253 --- Helper/FadeForm.cs | 22 +++++++++------------- Program.cs | 31 ++++++++++++------------------- Properties/AssemblyInfo.cs | 4 ++-- SystemTrayMenu.csproj | 3 +++ 4 files changed, 26 insertions(+), 34 deletions(-) diff --git a/Helper/FadeForm.cs b/Helper/FadeForm.cs index 44022d8..ae0dffe 100644 --- a/Helper/FadeForm.cs +++ b/Helper/FadeForm.cs @@ -90,6 +90,11 @@ namespace SystemTrayMenu timerFadeHalf.Stop(); timerFadeIn.Start(); } + else if (form.IsDisposed) + { + new Logger(nameof(FadeForm)).Warn( + $"{Environment.StackTrace.ToString()}"); + } else { ShowInactiveTopmost(form); @@ -161,19 +166,10 @@ namespace SystemTrayMenu static void ShowInactiveTopmost(Form frm) { - try - { - ShowWindow(frm.Handle, SW_SHOWNOACTIVATE); - SetWindowPos(frm.Handle.ToInt32(), HWND_TOPMOST, - frm.Left, frm.Top, frm.Width, frm.Height, - SWP_NOACTIVATE); - } - catch (Exception exception) - { - Logger log = new Logger(nameof(FadeForm)); - log.Error($"{exception.ToString()}"); - //MessageBox.Show(exception.ToString()); - } + ShowWindow(frm.Handle, SW_SHOWNOACTIVATE); + SetWindowPos(frm.Handle.ToInt32(), HWND_TOPMOST, + frm.Left, frm.Top, frm.Width, frm.Height, + SWP_NOACTIVATE); } } } \ No newline at end of file diff --git a/Program.cs b/Program.cs index 8d33a05..a07d18c 100644 --- a/Program.cs +++ b/Program.cs @@ -36,6 +36,9 @@ namespace SystemTrayMenu Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); + Logger log = new Logger(nameof(Program)); + Logger.Start(new FileInfo(GetLogFilePath())); + if (IsAppAlreadyRunning("SystemTrayMenu")) { KillOtherSystemTrayMenus(); @@ -49,8 +52,6 @@ namespace SystemTrayMenu SetProcessDPIAware(); } - Logger log = new Logger(nameof(Program)); - Logger.Start(new FileInfo(GetLogFilePath())); try { bool cancelAppRun = false; @@ -78,29 +79,21 @@ namespace SystemTrayMenu bool killedAProcess = false; int ownPID = Process.GetCurrentProcess().Id; - foreach (Process p in Process.GetProcessesByName("SystemTrayMenu"). - Where(p => p.Id != ownPID)) + try { - try + foreach (Process p in + Process.GetProcessesByName("SystemTrayMenu"). + Where(p => p.Id != ownPID)) { p.Kill(); p.WaitForExit(); killedAProcess = true; } - catch (Win32Exception winException) - { - Logger log = new Logger(nameof(Program)); - log.Error($"{winException.ToString()}"); - MessageBox.Show(winException.ToString()); - Application.Exit(); - } - catch (InvalidOperationException invalidException) - { - Logger log = new Logger(nameof(Program)); - log.Error($"{invalidException.ToString()}"); - MessageBox.Show(invalidException.ToString()); - Application.Exit(); - } + } + catch (Exception exception) + { + Logger log = new Logger(nameof(Program)); + log.Warn($"{exception.ToString()}"); } return killedAProcess; diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs index c31ad99..0a03456 100644 --- a/Properties/AssemblyInfo.cs +++ b/Properties/AssemblyInfo.cs @@ -31,5 +31,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("0.9.1.252")] -[assembly: AssemblyFileVersion("0.9.1.252")] +[assembly: AssemblyVersion("0.9.1.253")] +[assembly: AssemblyFileVersion("0.9.1.253")] diff --git a/SystemTrayMenu.csproj b/SystemTrayMenu.csproj index 1b45b3c..c2f21de 100644 --- a/SystemTrayMenu.csproj +++ b/SystemTrayMenu.csproj @@ -104,6 +104,9 @@ AnyCPU bin\Release\ + none + full + true AnyCPU