Почему я не могу заставить Win32_UninterruptiblePowerSupply работать? - PullRequest
2 голосов
/ 24 июня 2010

У меня есть простой код:

ManagementObjectSearcher searcher = 
    new ManagementObjectSearcher("select * from Win32_UninterruptiblePowerSupply");

ManagementObjectCollection items = searcher.Get();

foreach (ManagementObject item in items)
{
    // Some code here...
}

Объект "items" имеет полулуль. На самом деле это объект, но вызов .Count или чего-либо еще вызывает исключение.

У меня подключен стандартный ИБП, совместимый с USB, это Windows 7, и я использую Visual Studio 2010 на 64-битной машине. Я добавил манифест и тоже требовал администратора.

Другие классы WMI работают, но этот не работает. У меня нет идей - помогите!

Ответы [ 2 ]

3 голосов
/ 24 июня 2010

В документации MSDN для Win32_UninterruptiblePowerSupply указано, что:

Начиная с Windows Vista, этот класс устарел и недоступен, поскольку служба ИБП более недоступна.Эта служба работала с подключенными последовательно ИБП, а не с USB.

1 голос
/ 08 августа 2011

попробуйте CIM_UninterruptiblePowerSupply:

'Наличие ИБП (WMI)

Private Function UPSavailability() As String

    Dim s As String = ""
    UPSavailability = s

    Try
        Dim searcher As New ManagementObjectSearcher("root\CIMV2", "SELECT * FROM CIM_UninterruptiblePowerSupply")

        For Each queryObj As ManagementObject In searcher.Get()
            s = queryObj("Availability")
        Next

        Return s

    Catch err As ManagementException
        MessageBox.Show("An error occurred while querying for WMI data: " & err.Message)
    End Try
End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...