Windows desktop version add global hotkey function

This commit is contained in:
2dust
2025-02-26 10:52:36 +08:00
parent add92cfa7c
commit a7f35d4495
5 changed files with 102 additions and 20 deletions

View File

@@ -12,6 +12,7 @@ using MsBox.Avalonia.Enums;
using ReactiveUI;
using Splat;
using v2rayN.Desktop.Common;
using v2rayN.Desktop.Handler;
namespace v2rayN.Desktop.Views
{
@@ -138,8 +139,7 @@ namespace v2rayN.Desktop.Views
if (Utils.IsWindows())
{
ThreadPool.RegisterWaitForSingleObject(Program.ProgramStarted, OnProgramStarted, null, -1, false);
menuGlobalHotkeySetting.IsVisible = false;
HotkeyHandler.Instance.Init(_config, OnHotkeyHandler);
}
else
{
@@ -156,7 +156,6 @@ namespace v2rayN.Desktop.Views
RestoreUI();
AddHelpMenuItem();
//WindowsHandler.Instance.RegisterGlobalHotkey(_config, OnHotkeyHandler, null);
MessageBus.Current.Listen<string>(EMsgCommand.AppExit.ToString()).Subscribe(StorageUI);
}
@@ -233,6 +232,7 @@ namespace v2rayN.Desktop.Views
StorageUI();
if (Application.Current?.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
{
HotkeyHandler.Instance.Dispose();
desktop.Shutdown();
}
break;
@@ -268,21 +268,12 @@ namespace v2rayN.Desktop.Views
ShowHideWindow(null);
break;
//case EGlobalHotkey.SystemProxyClear:
// ViewModel?.SetListenerType(ESysProxyType.ForcedClear);
// break;
//case EGlobalHotkey.SystemProxySet:
// ViewModel?.SetListenerType(ESysProxyType.ForcedChange);
// break;
//case EGlobalHotkey.SystemProxyUnchanged:
// ViewModel?.SetListenerType(ESysProxyType.Unchanged);
// break;
//case EGlobalHotkey.SystemProxyPac:
// ViewModel?.SetListenerType(ESysProxyType.Pac);
// break;
case EGlobalHotkey.SystemProxyClear:
case EGlobalHotkey.SystemProxySet:
case EGlobalHotkey.SystemProxyUnchanged:
case EGlobalHotkey.SystemProxyPac:
Locator.Current.GetService<StatusBarViewModel>()?.SetListenerType((ESysProxyType)((int)e - 1));
break;
}
}