如何以编程方式检查键盘是否已连接?

2in*_*tor 5 c# windows pinvoke winforms c#-4.0

我正在使用 C# winforms 开发应用程序。

我们的应用程序将安装在 win8 表面(触摸屏设备)上。

我们想检查键盘是否通过 USB 连接,然后我们的应用程序不会显示软键盘,否则会显示。

许多方法都可用于检查 WinRT,但没有用于检查 winforms C# 的方法。

如果我的问题不清楚,请告诉我。

提前致谢。

cal*_*bob 7

我刚刚写了这个并在 W8 上测试:

ManagementObjectSearcher searcher = new ManagementObjectSearcher("Select Name from Win32_Keyboard");

        foreach(ManagementObject keyboard in searcher.Get())
        {
            if (!keyboard.GetPropertyValue("Name").Equals(""))
            {
                Console.WriteLine("KB Name: {0}", keyboard.GetPropertyValue("Name"));
            }
        }
Run Code Online (Sandbox Code Playgroud)

我还连接了第二个键盘,可以看到检测到它。当我拔下一个时,我得到一个条目,当拔下两个时,我什么也得不到。

我还在这里找到了一些例子: Example 1 and here Example 2

希望这可以帮助。