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

标签 windows c#-4.0 windows-7 device-manager

我正在开发一个提供字段详细信息的 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 >

属性下有各种字段,例如显示名称、问题代码、 parent sibling 等等?

我想得到他们的值(value)观。 我可以为此使用哪个 Windows API。 我正在为 Windows 7 和 Windows 8 执行此操作。我希望 API 将保持不变。而且我有 64 位机器。 对于我想从设备管理器中了解其详细信息的任何设备,都必须如此。

此外,我只想要所有操作 - 读取和不设置(写入),所以我认为我不会有任何违反管理员权限的问题。请建议。!我添加了快照以供引用!例如,我想知道 HID USB 投诉鼠标的当前状态(D0(事件)或 D2( sleep ))。

Image Showing the Powerdata Field for HID Compliant Mouse

Image Showing the Power State for HID Complaint Mouse That is D0 - Active

我需要获取此电源状态 D0。

最佳答案

尽管实际问题要求使用任何 Window API,但该问题已标记为 C#。使用 Win32 API,可以使用 SetupDiGetDeviceRegistryProperty() 检索信息.这些步骤是:

  1. 通过 SetupDiGetClassDevs() 为您感兴趣的设备获取设备信息集.
  2. 通过 SetupDiEnumDeviceInfo() 遍历设备信息.
  3. 通过调用 SetupDiGetDeviceRegistryProperty() 获取属性。
  4. 销毁通过SetupDiDestroyDeviceInfoList()设置的设备信息.

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

关于windows - 在 Windows 7/8 中读取设备管理器的属性字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15000196/

相关文章:

windows - 在 IIS 6 上设置 Mercurial 服务器

c++ - 如何在基于 C++/QT 的安装程序中检测互联网断开连接

c# - Crystal 报表一直提示输入参数

c# - 试图避免服务器上的流量

windows-7 - 批量报警文件不会响

asp.net - 适用于 .NET 开发人员的 Windows 7 版本

Windows 文件系统 : Creation time of a file doesn't change when while is deleted and created again

c# - 在 C# 中将两个 List<> 相交

visual-studio-2010 - Visual Studio 2010 Beta 2开始要求提升

windows - Docker 构建彩色消息不可读