예제 #1
0
        void ResetCurrentHotkey(bool clear)
        {
            switch (currentHotkeyType)
            {
            case HotKeyType.ConvertLast:
                currentHotkey = clear ? new KeyboardEventArgs(Keys.None, false) : settings.ConvertLastHotkey;
                break;

            case HotKeyType.ConvertSelection:
                currentHotkey = clear ? new KeyboardEventArgs(Keys.None, false) : settings.ConvertSelectionHotkey;
                break;

            case HotKeyType.SwitchLayout:
                currentHotkey = clear ? new KeyboardEventArgs(Keys.None, false) : settings.SwitchLayoutHotkey;
                break;

            case HotKeyType.ToggleAutoSwitching:
                currentHotkey = clear ? new KeyboardEventArgs(Keys.None, false) : settings.ToggleAutoSwitchingHotkey;
                break;

            default:
                currentHotkey = null;
                break;
            }
            SetCurrentHotkeyInputText(currentHotkey == null ? "NULL" : ReplaceCtrls(currentHotkey.ToString()));
        }
예제 #2
0
 void kbdHook_KeyboardEvent(object sender, KeyboardEventArgs e)
 {
     if (currentHotkeyType != HotKeyType.None && e.Type == KeyboardEventType.KeyDown)
     {
         var vk = e.KeyCode;
         if (vk == Keys.Escape || vk == Keys.Back)
         {
             e.Handled = true;
             ResetCurrentHotkey(vk == Keys.Back);
             return;
         }
         if (vk != Keys.LMenu && vk != Keys.RMenu &&
             vk != Keys.LWin && vk != Keys.RWin &&
             vk != Keys.LShiftKey && vk != Keys.RShiftKey &&
             vk != Keys.LControlKey && vk != Keys.RControlKey)
         {
             e.Handled = true;
         }
         SetCurrentHotkeyInputText(e.ToString());
         currentHotkey = e;
     }
 }