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.
możliwe duplikat [WMI HDD Serial Number transponowane] (http : //stackoverflow.com/questions/10989338/wmi-hdd-serial-number-transposed) –
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
Jeden z połączonych artykułów ma działające rozwiązanie. Nie możesz polegać na WMI. –