【问题标题】:How to get information from device manager?如何从设备管理器中获取信息?
【发布时间】:2011-08-04 13:30:47
【问题描述】:

如何在我的 C# 应用程序中读取有关设备的特定信息? 我已经尝试过 WMI,但它没有提供我需要的信息。

我想要的信息存储在设备的详细信息选项卡中,我想要的信息是“父母”。

我也查看了注册表,没有任何运气。

【问题讨论】:

  • 我希望 WMI 能够帮助解决这个问题,您能否使用 WMI 访问设备本身?如果是这样,那么分享代码,我们可以看到如何检索详细信息...
  • 用ProcMon看,好像都是Win32 API调用,和注册表无关。

标签: c# .net windows device systems-programming


【解决方案1】:

微软提供示例:http://support.microsoft.com/kb/311272

在 C# 中,捕获 devcon 的输出可能比集成 API 更容易。如果您对它感到满意,C++/CLI 是迄今为止将设备信息导入 .NET 的最简单方法(我以前做过)。

【讨论】:

  • 仍然不清楚。哪些命令会显示选项卡详细信息? @Afra 如果您能够成功地尝试,您可以在此处粘贴您的示例!
  • @Raulp:devcon 不仅仅是一个方便的工具,它还是一个示例。这意味着源代码可供您学习。为什么我会认为您甚至没有查看源代码?
  • 我查看了示例示例,无法检索“电源”状态(也称为电源数据)。是的,当然有设备状态(状态)“驱动程序正在运行”或设备状态正常。但不是电源数据信息。(到目前为止我找不到)。
  • @Raulp:好的。该示例向您展示了如何获取设备信息集和设备节点句柄。然后调用SetupDiGetDeviceProperty 并查询DEVPKEY_Device_PowerDataSetupDiGetDeviceRegistryPropertySPDRP_DEVICE_POWER_DATA
  • 感谢提示,我现在可以获取电源状态了!
【解决方案2】:

这些 API 应该可以帮助您:http://msdn.microsoft.com/en-us/library/ff550630(VS.85).aspx#retrieving_the_parent_of_a_device_inst

看起来 SetupAPI 可用作 Windows Vista 或更新版本的替代方案。以上方法适用于Win2000+

【讨论】:

    猜你喜欢
    • 2017-05-18
    • 2013-02-28
    • 1970-01-01
    • 2020-11-09
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 2020-01-14
    • 1970-01-01
    相关资源
    最近更新 更多