2012-06-28 9 views
5

Nawiązując do MSDN i modyfikować kod abit więc mogę odzyskać HDD Serial NumberWin32_PhysicalMedia SerialNumber czasami źle zamówienie

hres = pSvc->ExecQuery(
    bstr_t("WQL"), 
    bstr_t("SELECT SerialNumber FROM Win32_PhysicalMedia"), 
    WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY, 
    NULL, 
    &pEnumerator); 
.. 
..<other code here> 
.. 
hr = pclsObj->Get(L"SerialNumber", 0, &vtProp, 0, 0); 

przekonwertować vtProp.bstrVal do std :: wstring i zrobić odwrotny ciąg, powodem, dla którego trzeba odwrócić wynik z vtProp.bstrVal jest, bo okazało się, że niektóre z komputera używam aby pobrać numer seryjny znajduje się w niewłaściwej kolejności

na przykład: komputer 1 powrót seryjny: w [spacja] -DXW1M6EC01056, Muszę zrobić odwrotny ciąg znaków, aby był [spacja] WD-WXM1E60C0165 który jest poprawny po porównać z etykiety na dysku twardym

ale kiedy test z Computer 2 powrotnej seryjny: WD-WXM1E60C0165 (i użyć tego samego kodu, to rzeczywiście powrócić poprawnie kiedy sprawdzasz z etykietą szeregowego na HDD) jeśli mój kod zrobić odwrotny ciąg, stanie się w [spacja] -DXW1M6EC01056

sprawdzić zarówno z komputera, to little-endian, nie wiem czy ma to coś wspólnego z Endianizmem, czy nie.

Czy jest coś, co skutkuje zwrotem w innej kolejności? Producent/marka dysku twardego? Uruchamiam program w Windows XP Pro dla wszystkich wyników testu.

+1

możliwe duplikat [WMI HDD Serial Number transponowane] (http : //stackoverflow.com/questions/10989338/wmi-hdd-serial-number-transposed) –

+1

wygląda na to, że ludzie mają podobne problemy, chciałbym znaleźć sposób, aby dowiedzieć się, kiedy i dlaczego czasami jest w złej kolejności w porównaniu do etykiety/naklejki na dysku twardym. Zwracany numer seryjny, którego używam, służy do celów licencyjnych, jeśli maszyna/komputer zawsze zwraca błędną kolejność, może to spowodować problem lub nie, gdy mój mechanizm licencjonowania porówna numer seryjny dysku twardego. – hghew

+0

Jeden z połączonych artykułów ma działające rozwiązanie. Nie możesz polegać na WMI. –

Odpowiedz