C# 如何检测GlobalKeyboardHook中按下的键盘?

C# 如何检测GlobalKeyboardHook中按下的键盘?,c#,wpf,C#,Wpf,使用全局键盘挂钩(如下所示: ),如何检测从触发的事件中按下了哪个键盘?以下是一个示例: keyBoardHook = new KeyboardHook(true); keyBoardHook.KeyDown += KeyBoardHook_KeyDown; keyBoardHook.KeyUp += KeyBoardHook_KeyUp; private void KeyBoardHook_KeyUp(System.Windows.Forms.Keys key, bool Shift, bo

使用全局键盘挂钩(如下所示: ),如何检测从触发的事件中按下了哪个键盘?

以下是一个示例:

keyBoardHook = new KeyboardHook(true);
keyBoardHook.KeyDown += KeyBoardHook_KeyDown;
keyBoardHook.KeyUp += KeyBoardHook_KeyUp;

private void KeyBoardHook_KeyUp(System.Windows.Forms.Keys key, bool Shift, bool Ctrl, bool Alt)
    {
        if (key == System.Windows.Forms.Keys.F1)
        {
            //do something
        }
    }

    private void KeyBoardHook_KeyDown(System.Windows.Forms.Keys key, bool Shift, bool Ctrl, bool Alt)
    {
        if (key == System.Windows.Forms.Keys.F1)
        {
            //do something
        }
    }

让我们明白,你真的是说“键盘”?在中,您有多个键盘,您需要知道用户是按了左键盘上的A按钮还是按了右键盘上的A按钮(例如)?没错,您不能用全局钩子这样做。如果您需要知道使用了哪个设备,请使用DirectInput。它的级别要低得多,MS认为它已经过时了,但它完成了它的工作,而且它还有一个额外的优势,即比全局钩子更健壮,因为它不涉及任何dll注入或其他黑暗实践。谢谢-我已经开始了这样一个方向,这是如何回答这个问题的?此外,每个答案都应该包含一些解释,而不仅仅是一段无法解释的代码。对不起,我误解了这个问题。我以为他在问如何检测按下了哪个键