void CreateHotKeyWindow() { if (hkWindow != null) { return; } hkWindow = new VgcApis.WinForms.HotKeyWindow(niMenuRoot); var wndHandle = hkWindow.Handle; VgcApis.Libs.Sys.FileLogger.Info($"Create hot key window {wndHandle}."); var handles = hkContexts.Keys; foreach (var handle in handles) { if (hkContexts.TryGetValue(handle, out var context)) { try { hkWindow.RegisterHotKey(context); } catch { } } } hkWindow.OnHotKeyMessage += HandleHotKeyEvent; }
void DestroyHotKeyWindow() { if (hkWindow == null) { return; } VgcApis.Libs.Sys.FileLogger.Info("Destroy hot key window."); var wnd = hkWindow; hkWindow = null; wnd.ReleaseHandle(); wnd.OnHotKeyMessage -= HandleHotKeyEvent; var handles = hkContexts.Keys; foreach (var handle in handles) { if (hkContexts.TryGetValue(handle, out var context)) { try { wnd.UnregisterHotKey(context); } catch { } } } }