我正在开发一个Windows应用程序,它提供了字段详细信息 – > X.
其中X是 – >
右键单击我的电脑>
Properties > Device Manager > (select any Item - Say KeyBoard) > Click it > standard PS/2 KeyBoard > double Click standard PS/2 KeyBoard > click the Details Tab >
在财产下有各种领域,如显示名称,问题代码,家长兄弟姐妹等,等等?
我想要得到他们的价值。 我可以使用哪个Windows API。 我这样做的Windows 7以及Windows 8.我希望API将保持不变。另外我有64位机器。 对于我想从“设备pipe理器”中了解详细信息的任何设备,都必须如此。
而且我只是想要所有的操作 – 阅读和没有设置(写),所以我认为我不会有任何问题违反pipe理Rights.PLeasebuild议。 我添加了快照以供参考!例如,我想知道HID USB抱怨鼠标(D0(活动)或D2(睡眠))的当前状态。
我需要得到这个电源状态D0。
使用ManagementObjectCollection获取硬件信息非常容易。
例如从PC处理器获取所有属性和值
var win32DeviceClassName = "win32_processor"; var query = string.Format("select * from {0}", win32DeviceClassName); using (var searcher = new ManagementObjectSearcher(query)) { ManagementObjectCollection objectCollection = searcher.Get(); foreach (ManagementBaseObject managementBaseObject in objectCollection) { foreach (PropertyData propertyData in managementBaseObject.Properties) { Console.WriteLine("Property: {0}, Value: {1}", propertyData.Name, propertyData.Value); } } }
WIN32类名的完整列表可在http://msdn.microsoft.com/en-us/library/aa394084%28v=VS.85%29.aspx
干杯。
这个问题是用C#标记的,但实际的问题是要求任何Window API。 使用Win32 API可以使用SetupDiGetDeviceRegistryProperty()来检索信息。 步骤是:
根据文档,该API在Windows 2000和更高版本上可用。
你将有最简单的时间(我认为)与PowerShell这样做。 如果您正在编写一些C#代码,则可以使用System.Management.Automation命名空间中的类型(例如PowerShell)执行PS脚本(链接: http : //msdn.microsoft.com/zh-cn/library/system.management。 automation.powershell(v = vs.85).aspx ),但我会开始使用PS控制台进行测试。
您应该首先(使用PowerShell)使用此命令浏览环境中的WMI对象
Get-WmiObject -List -namespace root\CIMV2
然后,一旦你确定你正在寻找的类,你可以使用这个命令检索该类的详细信息:
Get-WmiObject -namespace root\CIMV2 -class Win32_USBControllerDevice
一旦你有了这些内容,你就不得不分析文本。
更新:尝试使用此命令获得您的PC上的鼠标驱动程序的“状态”,“状态”和“开始”属性:
gwmi Win32_SystemDriver | where {$_.DisplayName -like "*Mouse*"}