void OnHookInvoked(object sender, HookEventArgs e) { if ((e.WParam == WM_KEYDOWN || e.WParam == WM_SYSKEYDOWN) && KeyDown != null) { KeyboardHookStruct khs = new KeyboardHookStruct(e); KeyEventArgsEx kea = new KeyEventArgsEx(khs.virtualKey, Control.ModifierKeys, khs.scanCode); KeyDown(sender, kea); e.Handled = kea.Handled; } else if ((e.WParam == WM_KEYUP || e.WParam == WM_SYSKEYUP) && KeyUp != null) { KeyboardHookStruct khs = new KeyboardHookStruct(e); KeyEventArgsEx kea = new KeyEventArgsEx(khs.virtualKey, Control.ModifierKeys, khs.scanCode); KeyUp(sender, kea); e.Handled = kea.Handled; } }
void hook_KeyUp(object sender, KeyEventArgsEx e) { if (GUIWindowManager.ActiveWindowEx != this.GetID) return; try { //BaseConfig.MyAnimeLog.Write("e.KeyCode: {0} - {1} - {2}", e.KeyCode, e.keyChar, e.KeyValue); } catch { } //when the list is selected, search the input if ((m_Facade.CurrentLayout == GUIFacadeControl.Layout.List && m_Facade.ListLayout.IsFocused) || (m_Facade.CurrentLayout == GUIFacadeControl.Layout.LargeIcons && m_Facade.ThumbnailLayout.IsFocused) || (m_Facade.CurrentLayout == GUIFacadeControl.Layout.Filmstrip && m_Facade.FilmstripLayout.IsFocused) || (m_Facade.CurrentLayout == GUIFacadeControl.Layout.CoverFlow && m_Facade.CoverFlowLayout.IsFocused)) { e.Handled = true; //catch ctrl+w and ctrl+m for toggling search word and mode if (e.Control) { switch (e.KeyCode) { case Keys.W: OnSearchAction(SearchAction.ToggleStartWord); break; case Keys.M: OnSearchAction(SearchAction.ToggleMode); break; default: e.Handled = false; return; //do nothing } } else { switch (e.KeyCode) { case Keys.Back: OnSearchAction(SearchAction.DeleteChar); break; case Keys.Tab: OnSearchAction(SearchAction.NextMatch); break; default: if (!OnSearchChar(e.keyChar)) { e.Handled = false; return; //do nothing } break; } } if (e.Handled) { //we handled the keypress: make some noise if (!string.IsNullOrEmpty(searchSound) && !MediaPortal.Player.g_Player.Playing) MediaPortal.Util.Utils.PlaySound(searchSound, false, true); } } }
void hook_KeyDown(object sender, KeyEventArgsEx e) { if (GUIWindowManager.ActiveWindowEx != this.GetID) return; //mark normal keys as handled, otherwise some other handler might be called // (like 'home' for 'h') if (!e.Alt && !e.Control && IsSearchChar(e.keyChar) && MediaPortal.Player.g_Player.Playing == false) e.Handled = true; }
void OnHookInvoked(object sender, HookEventArgs e) { if ((e.WParam == WM_KEYDOWN || e.WParam == WM_SYSKEYDOWN) && KeyDown != null) { KeyboardHookStruct khs = new KeyboardHookStruct(e); KeyEventArgsEx kea = new KeyEventArgsEx(khs.virtualKey, Control.ModifierKeys, khs.scanCode); KeyDown(sender, kea); e.Handled = kea.Handled; } else if ((e.WParam == WM_KEYUP || e.WParam == WM_SYSKEYUP) && KeyUp != null) { KeyboardHookStruct khs = new KeyboardHookStruct(e); KeyEventArgsEx kea = new KeyEventArgsEx(khs.virtualKey, Control.ModifierKeys, khs.scanCode); KeyUp(sender, kea); e.Handled = kea.Handled; } }