private static Hotkey FromSettingsString(string hkStr) { string[] args = hkStr.Split(':'); if (args.Length == 0) { return(null); } if (!WindowsVirtualKey.TryParse(typeof(WindowsVirtualKey), args[0], true, out var keyObj)) { return(null); } WindowsVirtualKey key = (WindowsVirtualKey)keyObj; HotkeyModifiers mods = 0; for (int i = 1; i < args.Length; i++) { string modStr = args[i]; if (modStr == HotkeyModifiers.Alt.ToString()) { mods |= HotkeyModifiers.Alt; } else if (modStr == HotkeyModifiers.Ctrl.ToString()) { mods |= HotkeyModifiers.Ctrl; } else if (modStr == HotkeyModifiers.Shift.ToString()) { mods |= HotkeyModifiers.Shift; } } return(new Hotkey(key, mods)); }