Серийный номер материнской платы
От: Kolich  
Дата: 05.11.03 15:29
Оценка:
Такой вот вопрос:

можно ли всетаки у motherboard серийник определить?

на форумах rsdn и на других вопрос часто подымался, но решения я так и не смог найти.

попытки были по всякому это сделать:

через адресс, через WMI и тд,

но через адрес народ утверждает что это не тот серийник, а через WMI пробовал, возвращает пустую строку.

Есть решение у этой проблемы?

05.11.03 18:34: Перенесено модератором из 'C/C++' — ПК
Re: win98 -> xp
От: Kolich  
Дата: 05.11.03 19:45
Оценка:
Даже вот так:

в 98 windows для этого подходит следующее:

CString bname, bcopy, bdate, bserial;

bname.Format("%s",(char*)(0xFE061)); // Bios name

bcopy.Format("%s",(char*)(0xFE091)); // Bios copyright

bdate.Format("%s",(char*)(0xFFFF5)); // Bios date

bserial.Format("%s",(char*)(0xFEC71)); // Bios serial number

но в xp такой код не работает, не может по такому аддресу обратится, что сделать?
Re: Серийный номер материнской платы
От: Andrew S Россия http://alchemy-lab.com
Дата: 05.11.03 21:59
Оценка:
K>можно ли всетаки у motherboard серийник определить?
Можно.

K>на форумах rsdn и на других вопрос часто подымался, но решения я так и не смог найти.


Решения были приведены. И именно тут.

K>попытки были по всякому это сделать:


K>через адресс, через WMI и тд,


K>но через адрес народ утверждает что это не тот серийник, а через WMI пробовал, возвращает пустую строку.


Ничего подобного. Через WMI все прекрасно работает. Нет WMI — можно через DMI.

K>Есть решение у этой проблемы?


Есть. Искать по гуглю и по форуму. Тут даже примеры кода были.

Успехов.
http://www.rusyaz.ru/pr — стараемся писАть по-русски
Re[2]: Серийный номер материнской платы
От: Kolich  
Дата: 06.11.03 09:16
Оценка:
Нет, сериал нумбер через WMI возвращает пустую строку,

Вот такой код:
HRESULT hres;

IWbemLocator *spLocator;
IWbemClassObject *spObject;
ULONG ulCount;
_variant_t val;


CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);

CoInitializeSecurity(NULL, -1, NULL, NULL,
RPC_C_AUTHN_LEVEL_CONNECT,
RPC_C_IMP_LEVEL_IMPERSONATE,
NULL, EOAC_NONE, 0);

hres = CoCreateInstance(__uuidof(WbemLocator), NULL,
CLSCTX_INPROC_SERVER, __uuidof(IWbemLocator),
(PVOID *)&spLocator);

IWbemServices *spServices;

hres = spLocator->ConnectServer(_bstr_t(L"root\\cimv2"), NULL,
NULL, NULL, 0, NULL, NULL,
&spServices);

IEnumWbemClassObject *spEnum;


hres = spServices->CreateInstanceEnum(_bstr_t(L"Win32_BaseBoard"),
WBEM_FLAG_SHALLOW|WBEM_FLAG_FORWARD_ONLY,
NULL, &spEnum);



spEnum->Next(WBEM_INFINITE, 1, &spObject, &ulCount);

hres = spObject->Get(L"SerialNumber", 0, &val, NULL, NULL);

возвращает пустую строчку.

Ответов конкретных на форуме так и не нашел.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.