首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Windows 7/8中读取设备管理器的属性字段

在Windows 7/8中读取设备管理器的属性字段
EN

Stack Overflow用户
提问于 2013-02-21 18:42:35
回答 3查看 11.6K关注 0票数 6

我正在开发一个windows应用程序,它提供了字段详细信息--> X。

其中X是-->

右键单击我的电脑>

代码语言:javascript
复制
    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来实现这一点。我正在为windows7和windows8做这件事,我希望API能保持我的64位机器上的same.Also。对于我想从设备管理器中了解其详细信息的任何设备,这必须是正确的。

ALso我只是想要所有的操作-读取和没有设置(写入),所以我想我不会有任何违反管理员Rights.PLease建议的问题。我已经添加了快照以供参考!例如,我想知道HID USB故障鼠标的当前状态(D0(活动)或D2(睡眠))。

我需要得到这个电源状态D0。

EN

回答 3

Stack Overflow用户

发布于 2013-03-05 13:05:50

使用ManagementObjectCollection可以很容易地获取硬件信息。

例如从PC处理器获取所有属性和值

代码语言:javascript
复制
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);
                    }
                }



            }

http://msdn.microsoft.com/en-us/library/aa394084%28v=VS.85%29.aspx上提供了WIN32类名称的完整列表

干杯。

票数 3
EN

Stack Overflow用户

发布于 2014-06-25 23:25:24

该问题使用C#标记,但实际问题要求使用任何Window。通过使用Win32 API,可以使用SetupDiGetDeviceRegistryProperty()检索信息。具体步骤如下:

通过SetupDiGetClassDevs().

  • Iterate获取您感兴趣的设备的设备信息集通过SetupDiEnumDeviceInfo().

  • Get获取属性通过调用SetupDiGetDeviceRegistryProperty().

  • Destroy
  1. 获取您感兴趣的设备的设备信息集

根据文档,该API可在Windows 2000及更高版本上使用。

票数 3
EN

Stack Overflow用户

发布于 2013-03-03 12:19:20

(我认为)使用PowerShell做这件事将是最容易的。如果您正在编写一些C#代码,您可以使用System.Management.Automation名称空间中的类型执行PS脚本,例如PowerShell (link:http://msdn.microsoft.com/en-us/library/system.management.automation.powershell(v=vs.85).aspx,但我将使用PS控制台开始您的测试。

您应该首先(使用PowerShell)使用以下命令探索环境中的WMI对象

代码语言:javascript
复制
Get-WmiObject -List -namespace root\CIMV2

一旦你确定了你正在寻找的类,你就可以使用下面的命令来检索该类的详细信息:

代码语言:javascript
复制
Get-WmiObject -namespace root\CIMV2 -class Win32_USBControllerDevice

一旦有了内容,就必须对文本进行解析。

更新:尝试使用此命令获取PC上鼠标驱动程序的“状态”、“状态”和“已启动”属性:

代码语言:javascript
复制
gwmi Win32_SystemDriver | where {$_.DisplayName -like "*Mouse*"}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15000196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档