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())); }
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; } }