From 3c3b6b49dbef674a30ce631a7bfb236cf1874485 Mon Sep 17 00:00:00 2001 From: Kang Yu Date: Mon, 19 Feb 2024 23:37:34 -0800 Subject: [PATCH] #288, wait for taskbar ready only once to avoid dead loop --- .../SystrayShell/Program.cs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/Ninjacrab.PersistentWindows.Solution/SystrayShell/Program.cs b/Ninjacrab.PersistentWindows.Solution/SystrayShell/Program.cs index c9446c8..f3f1274 100644 --- a/Ninjacrab.PersistentWindows.Solution/SystrayShell/Program.cs +++ b/Ninjacrab.PersistentWindows.Solution/SystrayShell/Program.cs @@ -69,6 +69,7 @@ namespace PersistentWindows.SystrayShell bool check_upgrade = true; bool auto_upgrade = false; bool legacy_icon = false; + bool waiting_taskbar = false; foreach (var arg in args) { @@ -141,6 +142,9 @@ namespace PersistentWindows.SystrayShell case "-delay_start": delay_start = 1; break; + case "-wait_taskbar": + waiting_taskbar = true; + break; case "-delay_manual_capture": delay_manual_capture = 1; break; @@ -244,9 +248,12 @@ namespace PersistentWindows.SystrayShell #endif AppdataFolder = appDataFolder; - bool ready = WaitTaskbarReady(); - if (!ready) - return; + if (!waiting_taskbar) + { + bool ready = WaitTaskbarReady(); + if (!ready) + return; + } // default icons IdleIcon = legacy_icon ? Properties.Resources.pwIcon2 : Properties.Resources.pwIcon; @@ -359,7 +366,7 @@ namespace PersistentWindows.SystrayShell string batFile = Path.Combine(AppdataFolder, $"pw_restart.bat"); string content = "timeout /t 10 /nobreak > NUL"; - content += "\nstart \"\" /B \"" + Path.Combine(Application.StartupPath, Application.ProductName) + ".exe\" " + Program.CmdArgs; + content += "\nstart \"\" /B \"" + Path.Combine(Application.StartupPath, Application.ProductName) + ".exe\" " + "-wait_taskbar " + Program.CmdArgs; File.WriteAllText(batFile, content); Process.Start(batFile); return false;