From dc57da8136ce22134acd8ac99effb455e84ff909 Mon Sep 17 00:00:00 2001 From: Jose Conde Date: Sat, 6 Sep 2025 14:59:10 +0200 Subject: [PATCH] changes --- ModVersionChecker/Main.cs | 29 +++++++++++--------- ModVersionChecker/ModVersionChecker.csproj | 1 + ModVersionChecker/VersionChecker.cs | 3 -- ModVersionChecker/data/model/GlobalConfig.cs | 3 ++ ModVersionChecker/forms/GlobalConfigForm.cs | 26 ++++++++++++++++-- 5 files changed, 43 insertions(+), 19 deletions(-) diff --git a/ModVersionChecker/Main.cs b/ModVersionChecker/Main.cs index b78b93d..ea304b6 100644 --- a/ModVersionChecker/Main.cs +++ b/ModVersionChecker/Main.cs @@ -38,6 +38,10 @@ namespace ModVersionChecker { Console.WriteLine("Application is shutting down..."); }); + lifetime.ApplicationStopping.Register(() => + { + Console.WriteLine("Application is shutting down..."); + }); Application.SetHighDpiMode(HighDpiMode.SystemAware); Application.EnableVisualStyles(); @@ -78,7 +82,13 @@ namespace ModVersionChecker var contextMenu = new ContextMenuStrip(); contextMenu.Items.Add("Configure", null, openFormHandler); - contextMenu.Items.Add("Exit", null, (s, e) => Application.Exit()); + contextMenu.Items.Add("Exit", null, (s, e) => + { + notifyIcon.Visible = false; + Application.Exit(); + lifetime.StopApplication(); + //host.StopAsync().GetAwaiter().GetResult(); + }); notifyIcon.ContextMenuStrip = contextMenu; notifyIcon.DoubleClick += openFormHandler; @@ -117,23 +127,16 @@ namespace ModVersionChecker }; } } - - // Add to startup - // AddToStartup(); + + host.Start(); Application.Run(); // Keep app running for tray icon + + host.StopAsync().GetAwaiter().GetResult(); } - host.RunAsync().GetAwaiter().GetResult(); - } - - static void AddToStartup() - { - using (var key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run", true)) - { - key?.SetValue("XintanalabsUpdateChecker", $"\"{Application.ExecutablePath}\""); - } + } } diff --git a/ModVersionChecker/ModVersionChecker.csproj b/ModVersionChecker/ModVersionChecker.csproj index 1cbc4c4..9174edd 100644 --- a/ModVersionChecker/ModVersionChecker.csproj +++ b/ModVersionChecker/ModVersionChecker.csproj @@ -6,6 +6,7 @@ enable true enable + Resources\MVC-Icon.ico diff --git a/ModVersionChecker/VersionChecker.cs b/ModVersionChecker/VersionChecker.cs index 68a1aec..514e8e4 100644 --- a/ModVersionChecker/VersionChecker.cs +++ b/ModVersionChecker/VersionChecker.cs @@ -1,10 +1,7 @@ using ModVersionChecker.data.model; -using ModVersionChecker.forms; using ModVersionChecker.managers.interfaces; using ModVersionChecker.utils; using NuGet.Versioning; -using OpenQA.Selenium.BiDi.Script; -using System.Windows.Forms; namespace ModVersionChecker diff --git a/ModVersionChecker/data/model/GlobalConfig.cs b/ModVersionChecker/data/model/GlobalConfig.cs index 4267932..498bb0a 100644 --- a/ModVersionChecker/data/model/GlobalConfig.cs +++ b/ModVersionChecker/data/model/GlobalConfig.cs @@ -17,5 +17,8 @@ namespace ModVersionChecker.data.model [JsonPropertyName("checkOnStartup")] public bool CheckOnStartup { get; set; } = true; + + [JsonPropertyName("runOnStartup")] + public bool RunOnStartup { get; set; } = false; } } diff --git a/ModVersionChecker/forms/GlobalConfigForm.cs b/ModVersionChecker/forms/GlobalConfigForm.cs index cdc2004..059856d 100644 --- a/ModVersionChecker/forms/GlobalConfigForm.cs +++ b/ModVersionChecker/forms/GlobalConfigForm.cs @@ -8,9 +8,9 @@ namespace ModVersionChecker.forms private IConfigManager _configManager; private GlobalConfig _config; - private Label _millislabel, _checkStartupLabel; + private Label _millislabel, _checkStartupLabel, _runOnStartupLabel; private TrackBar _millisField; - private CheckBox _checkStartupField; + private CheckBox _checkStartupField, _runOnStartupField; private Button _saveButton, _cancelButton; private TableLayoutPanel _mainLayout, _configsPanel; private FlowLayoutPanel _buttonPanel; @@ -54,8 +54,10 @@ namespace ModVersionChecker.forms { _config.IntervalMinutes = _millisField.Value; _config.CheckOnStartup = _checkStartupField.Checked; + _config.RunOnStartup = _runOnStartupField.Checked; _configManager.Save(_config); DialogResult = DialogResult.OK; + UpdateStartupSetting(_config.RunOnStartup); Close(); }; _cancelButton = new Button { Text = "Cancel", AutoSize = true }; @@ -90,13 +92,17 @@ namespace ModVersionChecker.forms _millisField.Scroll += (sender, e) => { millisValue.Text = _millisField.Value.ToString() + " minutes"; }; - _checkStartupLabel = new Label { Text = "Check on Startup:", Width = 150 }; + _checkStartupLabel = new Label { Text = "Check on Application Start:", Width = 150 }; _checkStartupField = new CheckBox { Checked = _config.CheckOnStartup }; + _runOnStartupLabel= new Label { Text = "Run on Windows Startup:", Width = 150 }; + _runOnStartupField = new CheckBox { Checked = _config.RunOnStartup }; configsPanel.Controls.Add(_millislabel, 0, 0); configsPanel.Controls.Add(millisPanel, 1, 0); configsPanel.Controls.Add(_checkStartupLabel, 0, 1); configsPanel.Controls.Add(_checkStartupField, 1, 1); + configsPanel.Controls.Add(_runOnStartupLabel, 0, 2); + configsPanel.Controls.Add(_runOnStartupField, 1, 2); return configsPanel; } @@ -116,6 +122,20 @@ namespace ModVersionChecker.forms return mainLayout; } + private void UpdateStartupSetting(bool runOnStartup) + { + using (var key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run", true)) + { + if (runOnStartup) + { + key?.SetValue("XintanalabsUpdateChecker", $"\"{Application.ExecutablePath}\""); + } + else + { + key?.DeleteValue("XintanalabsUpdateChecker", false); // Remove if unchecked + } + } + } // Add methods and properties for global configuration management here }