diff --git a/app/AsusACPI.cs b/app/AsusACPI.cs index a091e4cb..340d63ae 100644 --- a/app/AsusACPI.cs +++ b/app/AsusACPI.cs @@ -223,6 +223,8 @@ public class AsusACPI return _connected; } + private static ManagementEventWatcher? watcher; + public AsusACPI() { try @@ -747,10 +749,14 @@ public class AsusACPI { try { - ManagementEventWatcher watcher = new ManagementEventWatcher(); - watcher.EventArrived += new EventArrivedEventHandler(EventHandler); - watcher.Scope = new ManagementScope("root\\wmi"); - watcher.Query = new WqlEventQuery("SELECT * FROM AsusAtkWmiEvent"); + if (watcher is null) + { + watcher = new ManagementEventWatcher(); + watcher.EventArrived += new EventArrivedEventHandler(EventHandler); + watcher.Scope = new ManagementScope("root\\wmi"); + watcher.Query = new WqlEventQuery("SELECT * FROM AsusAtkWmiEvent"); + } + watcher.Start(); } catch diff --git a/app/Input/InputDispatcher.cs b/app/Input/InputDispatcher.cs index eebe9e4d..677886e8 100644 --- a/app/Input/InputDispatcher.cs +++ b/app/Input/InputDispatcher.cs @@ -32,9 +32,6 @@ namespace GHelper.Input byte[] result = Program.acpi.DeviceInit(); Debug.WriteLine($"Init: {BitConverter.ToString(result)}"); - Program.acpi.SubscribeToEvents(WatcherEventArrived); - //Task.Run(Program.acpi.RunListener); - hook.KeyPressed += new EventHandler(KeyPressed); RegisterKeys(); @@ -83,6 +80,8 @@ namespace GHelper.Input else Logger.WriteLine("Optimization service is running"); + Program.acpi.SubscribeToEvents(WatcherEventArrived); + InitBacklightTimer(); if (AppConfig.ContainsModel("VivoBook")) Program.acpi.DeviceSet(AsusACPI.FnLock, AppConfig.Is("fn_lock") ? 1 : 0, "FnLock");