Как получить Win32_OperatingSystem.LastBootUpTime в формате datetime - PullRequest
1 голос
/ 16 марта 2010

Я пытался получить LastBootUpTime, используя класс Win32_OperatingSystem (WMI).

HRESULT hr = pEnumerator->Next(WBEM_INFINITE, 1, 
        &pclsObj, &uReturn);

    if(0 == uReturn)
    {
        break;
    }

    VARIANT vtProp;

    // Get the value of the Name property
    hr = pclsObj->Get(L"LastBootUpTime", 0, &vtProp, 0, 0);          
    VariantClear(&vtProp);

Я хочу записать это время в переменную CTime или COleDateTime. Но переменная vtProp имеет тип BSTR и выглядит как 20100302185848.499768 + 300 Также любое свойство datetime любого класса WMI имеет тип BSTR

Как поместить свойство datetime класса WMI в CTime?


Но как использовать SWbemDateTime.GetVarDate () в C ++? В MSDN просто пример скриптинга для этой функции

Ответы [ 2 ]

2 голосов
/ 16 марта 2010

Вам понадобится выполнить некоторый анализ, чтобы преобразовать его. Формат yyyyMMddhhmmss.ffffff + zzz (zzz - смещение UTC в минутах). Метод SWbemDateTime.GetVarDate () может сделать это за вас.

1 голос
/ 16 марта 2010

Вы можете спокойно игнорировать что-либо после десятичной точки, как в формате yyyymmddhhmmss ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...