示例#1
0
        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));
        }