解决全局热键不能录制Alt组合键的问题

This commit is contained in:
chao wan 2023-02-28 01:00:04 +08:00
parent eeab8e4a90
commit f550f48295
4 changed files with 13 additions and 12 deletions

View file

BIN
.vs/v2rayN/v17/.wsuo Normal file

Binary file not shown.

View file

@ -54,22 +54,23 @@ namespace v2rayN.Views
Utils.SetDarkBorder(this, _config.uiItem.colorModeDark);
}
private void TxtGlobalHotkey_KeyDown(object sender, KeyEventArgs e)
{
var txt = ((TextBox)sender);
var index = Utils.ToInt(txt.Name.Substring(txt.Name.Length - 1, 1));
e.Handled = true;
var _ModifierKeys = new Key[]{ Key.LeftCtrl, Key.RightCtrl, Key.LeftShift, Key.RightShift, Key.LeftAlt, Key.RightAlt };
if (!_ModifierKeys.Contains(e.Key) && !_ModifierKeys.Contains(e.SystemKey))
{
var txt = ((TextBox)sender);
var index = Utils.ToInt(txt.Name.Substring(txt.Name.Length - 1, 1));
var formsKey = (Forms.Keys)KeyInterop.VirtualKeyFromKey(e.Key == Key.System ? e.SystemKey : e.Key);
if (e.Key == Key.System)
return;
var formsKey = (Forms.Keys)KeyInterop.VirtualKeyFromKey(e.Key);
lstKey[index].KeyCode = formsKey;
lstKey[index].Alt = (Keyboard.Modifiers & ModifierKeys.Alt) == ModifierKeys.Alt;
lstKey[index].Control = (Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control;
lstKey[index].Shift = (Keyboard.Modifiers & ModifierKeys.Shift) == ModifierKeys.Shift;
lstKey[index].KeyCode = formsKey;
lstKey[index].Alt = Keyboard.IsKeyDown(Key.LeftAlt) || Keyboard.IsKeyDown(Key.RightAlt);
lstKey[index].Control = Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl);
lstKey[index].Shift = Keyboard.IsKeyDown(Key.LeftShift) || Keyboard.IsKeyDown(Key.RightShift);
BindingData(index);
BindingData(index);
}
}
private void BindingData(int index)