2010-03-16 59 views
1

我一直在嘗試使用Win32_OperatingSystem類(WMI)獲取LastBootUpTime。如何以日期時間格式獲取Win32_OperatingSystem.LastBootUpTime

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 同時,任何WMI類的任何日期時間屬性具有BSTR類型

如何,我可以把WMI類的日期時間屬性的CTime?


但是如何在C++中使用SWbemDateTime.GetVarDate()?在MSDN只是示例腳本此功能

回答

2

你必須做一些分析將其轉換。格式爲yyyyMMddhhmmss.ffffff + zzz(zzz是以分鐘爲單位的UTC偏移量)。 SWbemDateTime.GetVarDate() method可以爲你做。

1

可以放心地忽略小數點後的任何作爲格式YYYYMMDDHHMMSS ..