mirror of
https://github.com/Hofknecht/SystemTrayMenu.git
synced 2024-09-29 16:51:18 +13:00
[Feature] Executable to show the menu (#276), version 1.2.0.9
This commit is contained in:
parent
18443a1682
commit
057e2281a6
1 changed files with 32 additions and 6 deletions
|
@ -5,6 +5,7 @@
|
||||||
namespace SystemTrayMenu.Utilities
|
namespace SystemTrayMenu.Utilities
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
@ -31,19 +32,44 @@ namespace SystemTrayMenu.Utilities
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
VirtualKeyCode virtualKeyCodeModifiers = (VirtualKeyCode)Enum.Parse(
|
List<VirtualKeyCode> virtualKeyCodesModifiers = new List<VirtualKeyCode>();
|
||||||
typeof(VirtualKeyCode), modifiers.ToString().ToUpperInvariant());
|
foreach (string key in modifiers.ToString().ToUpperInvariant().Split(", "))
|
||||||
VirtualKeyCode virtualKeyCodeHotkey = (VirtualKeyCode)Enum.Parse(
|
{
|
||||||
typeof(VirtualKeyCode), hotkey.ToString().ToUpperInvariant());
|
VirtualKeyCode virtualKeyCode = VirtualKeyCode.LWIN;
|
||||||
|
switch (key)
|
||||||
|
{
|
||||||
|
case "ALT":
|
||||||
|
virtualKeyCode = VirtualKeyCode.MENU;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
virtualKeyCode = (VirtualKeyCode)Enum.Parse(
|
||||||
|
typeof(VirtualKeyCode), key.ToUpperInvariant());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
new InputSimulator().Keyboard.ModifiedKeyStroke(virtualKeyCodeModifiers, virtualKeyCodeHotkey);
|
virtualKeyCodesModifiers.Add(virtualKeyCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
VirtualKeyCode virtualKeyCodeHotkey = 0;
|
||||||
|
object virtualKeyCodeHotkeyObject;
|
||||||
|
if (!Enum.TryParse(typeof(VirtualKeyCode), hotkey.ToString().ToUpperInvariant(), out virtualKeyCodeHotkeyObject))
|
||||||
|
{
|
||||||
|
Enum.TryParse(typeof(VirtualKeyCode), $"VK_{hotkey.ToString().ToUpperInvariant()}", out virtualKeyCodeHotkeyObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (virtualKeyCodeHotkeyObject != null)
|
||||||
|
{
|
||||||
|
virtualKeyCodeHotkey = (VirtualKeyCode)virtualKeyCodeHotkeyObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
new InputSimulator().Keyboard.ModifiedKeyStroke(virtualKeyCodesModifiers, virtualKeyCodeHotkey);
|
||||||
success = false;
|
success = false;
|
||||||
|
|
||||||
// how to solve with several modifier keys?
|
// how to solve with several modifier keys?
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Log.Warn("Send hoktey to other instance failed", ex);
|
Log.Warn($"Send hoktey {Properties.Settings.Default.HotKey} to other instance failed", ex);
|
||||||
killOtherInstances = true;
|
killOtherInstances = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue