c# - 在 C# 中检测 PS/2 端口状态

标签 c# keyboard port state detect

我试图简单地检测是否有键盘连接到我机器上的 PS/2 端口。这个想法是计算机将启动,但如果它检测到 USB 设备或 PS/2 键盘,它会重新启动到管理员模式。

我已经处理了 USB 方面的问题,尽管我没有找到任何关于 PS/2 端口的文档。有些帖子说在启动后无法检测到键盘插入 PS/2 端口,尽管我只是想在启动时检查是否有一个连接。

我正在为我的程序使用 C#,因此任何使用这种语言的解决方案都会非常有帮助,尽管任何语言的帮助都会很有帮助。

最佳答案

WMI似乎是这样做的:

ConnectionOptions opts = new ConnectionOptions();
ManagementScope scope = new ManagementScope(@"\\.\root\cimv2", opts);
string query = "select * from Win32_Keyboard";
System.Management.ObjectQuery oQuery = new ObjectQuery(query);
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, oQuery);
ManagementObjectCollection recordSet = searcher.Get();
foreach (ManagementObject record in recordSet)
{
    Console.WriteLine("" + record.Properties["Description"].Value);
    Console.WriteLine("" + record.Properties["Layout"].Value);
    Console.WriteLine("" + record.Properties["DeviceID"].Value);
    Console.WriteLine("" + record.Properties["PNPDeviceID"].Value);
    Console.WriteLine("" + record.Properties["Status"].Value + "\n");
}

返回:

USB Human Interface Device
0000040C
USB\VID_03F0&PID_0024\6&1A939CC4&0&1
USB\VID_03F0&PID_0024\6&1A939CC4&0&1
OK

Standard 101/102-Key or Microsoft Natural PS/2 Keyboard
0000040C
ACPI\PNP0303\4&3432CBB0&0
ACPI\PNP0303\4&3432CBB0&0
Error

我没有 PS/2 键盘,因此状态显示错误,但如果已连接,则状态应该为 OK。

关于c# - 在 C# 中检测 PS/2 端口状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8475187/

相关文章:

python - 如何在pygame中获取键盘输入?

linux - 使用自定义端口和 NO SSH 连接到 rsync

c# - 修改了 Entity Framework 集合;枚举操作可能无法执行

c# - 将 Asp.net 核心 Controller 限制为特定域名

objective-c - 学习 Objective-C 时我遇到了这段代码 : (scanf) 的问题

django - 为 django 开发环境配置端口,使站点可以从外部访问

linux - 如何连接到在端口中运行的 UDP 守护进程

c# - 将按位比较从 C++ 转换为 C#

c# - 找到支付特定值(value)的最佳账单组合

iphone - 如何将 iOS 设备键盘更改为特定语言