如何使用c#查找USB设备的状态?

时间:2010-10-05 10:57:34

标签: c#

我正在创建一个与我们的计算机系统消耗的功率相关的项目。 现在我的要求是,  我需要找出系统中usb设备(如pendrive)消耗的功率。 任何人都可以帮助我。

2 个答案:

答案 0 :(得分:0)

我认为你不能,因为USB规范似乎没有提及有关提供这些测量的任何内容。我知道您可以获得的唯一信息是该设备是低功耗还是高功率设备。对于USB 2.0为100mA或500mA,电压在4.4和5.25V之间。因此,低功率功率器件可能消耗几乎0到5.25 * 0.1 = 0.525W,高功率高达5.25 * 0.5 = 2.625W。

不幸的是,WMI课程似乎并没有给你这些信息,但这可能只是我在错误的地方。

//using System.Management
var USBDevices = new ManagementObjectSearcher(@"Select * From Win32_USBControllerDevice");
foreach (var device in USBDevices.Get())
{
    foreach (var prop in device.Properties)
    {
        Console.WriteLine(prop.Name + " : " + prop.Value);
    }
}

答案 1 :(得分:0)

您可以查看http://www.sharpdevelop.net/OpenSource/SharpUSBLib/default.aspx SharpDevelop的创建者(至少在同一台服务器上)的USB库