//Handle keyboard down void HandleKeyboardDown(MSG windowMessage, ref bool messageHandled) { try { //Get the pressed keys KeysVirtual usedVirtualKey = (KeysVirtual)windowMessage.wParam; //Check pressed key modifier KeysVirtual?usedModifierKey = null; System.Windows.Forms.Keys keysData = (System.Windows.Forms.Keys)(int) usedVirtualKey | System.Windows.Forms.Control.ModifierKeys; if (keysData.HasFlag(System.Windows.Forms.Keys.Control)) { usedModifierKey = KeysVirtual.Control; } else if (keysData.HasFlag(System.Windows.Forms.Keys.Alt)) { usedModifierKey = KeysVirtual.Alt; } else if (keysData.HasFlag(System.Windows.Forms.Keys.Shift)) { usedModifierKey = KeysVirtual.Shift; } //Check if a textbox is focused bool focusedTextBox = false; FrameworkElement frameworkElement = (FrameworkElement)Keyboard.FocusedElement; if (frameworkElement != null && frameworkElement.GetType() == typeof(TextBox)) { focusedTextBox = true; } //Check the pressed key if (usedVirtualKey == KeysVirtual.Tab && usedModifierKey == KeysVirtual.Shift) { PlayInterfaceSound(vConfigurationCtrlUI, "Move", false, false); } else if (usedVirtualKey == KeysVirtual.Tab) { PlayInterfaceSound(vConfigurationCtrlUI, "Move", false, false); } else if (usedVirtualKey == KeysVirtual.F13) { PlayInterfaceSound(vConfigurationCtrlUI, "Click", false, false); } else if (usedVirtualKey == KeysVirtual.Home) { PlayInterfaceSound(vConfigurationCtrlUI, "Click", false, false); } else if (usedVirtualKey == KeysVirtual.Prior) { PlayInterfaceSound(vConfigurationCtrlUI, "Click", false, false); } else if (usedVirtualKey == KeysVirtual.End) { PlayInterfaceSound(vConfigurationCtrlUI, "Click", false, false); } else if (usedVirtualKey == KeysVirtual.Next) { PlayInterfaceSound(vConfigurationCtrlUI, "Click", false, false); } else if (usedVirtualKey == KeysVirtual.Left) { PlayInterfaceSound(vConfigurationCtrlUI, "Move", false, false); } else if (usedVirtualKey == KeysVirtual.Up) { PlayInterfaceSound(vConfigurationCtrlUI, "Move", false, false); NavigateUp(ref messageHandled); } else if (usedVirtualKey == KeysVirtual.Right) { PlayInterfaceSound(vConfigurationCtrlUI, "Move", false, false); } else if (usedVirtualKey == KeysVirtual.Down) { PlayInterfaceSound(vConfigurationCtrlUI, "Move", false, false); NavigateDown(ref messageHandled); } else if (usedVirtualKey == KeysVirtual.Space) { if (!focusedTextBox) { PlayInterfaceSound(vConfigurationCtrlUI, "Confirm", false, false); } } else if (usedVirtualKey == KeysVirtual.BackSpace) { if (vFilePickerOpen && !focusedTextBox) { PlayInterfaceSound(vConfigurationCtrlUI, "Confirm", false, false); } } } catch { } }