Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Идентификационные номера устройств


Автор: Гость_Andrey 4.12.2003, 17:50
Здравствуйте !

Суть вопроса:

Получить идентификационный номер какого-нибудь железа в составе компа (идентификационный номер жесткого диска, процессора, материнской платы и т.п.)
Как это сделать, подскажите пожалуйста.

P.S. GetVolumeInformation () и т.п. функции не подходят ...
Сам пробовал получить идентификационный номер жесткого диска (подсказали как это сделать), работает в Win2k, но только если пользователь с правами администратора.
С правами пользователя в коде:

HANDLE OpenSmartDevice(UCHAR DrvNum)
{
HANDLE hsmart;
OSVERSIONINFO ovi;
CHAR buf[64]="\\.\SMARTVSD";

ovi.dwOSVersionInfoSize=sizeof(OSVERSIONINFO);
GetVersionEx(&ovi);

if(ovi.dwPlatformId==VER_PLATFORM_WIN32_NT)
sprintf(buf,"\\.\PhysicalDrive%u",DrvNum);
hsmart = CreateFile( buf,GENERIC_READ, FILE_SHARE_READ|FILE_SHARE_WRITE,
0,OPEN_EXISTING,0,0
);

return hsmart;
}


CreateFile() выдает 0xFFFFFF

Подскажите как сие побороть.
Спасибо заранее любым ответам и ссылкам. smile.gif

Автор: Ars 4.12.2003, 18:10
Как минимум, надо продублировать слэши в строковых массивах

Автор: Гость_Andrey 4.12.2003, 18:20
Цитата(Ars @ 4.12.2003, 18:10)
Как минимум, надо продублировать слэши в строковых массивах

Да все дело в том, что код работает (номер винта выдается), но это работает только с правами администратора для данного компа, а нужно для любого пользователя ...

Автор: Ars 4.12.2003, 18:40
GetLastError пишет "Access is denied". У юзера не хватает правов для такой серьезной операции smile.gif

Автор: Guest 4.12.2003, 18:59
Цитата(Ars @ 4.12.2003, 18:40)
GetLastError пишет "Access is denied". У юзера не хватает правов для такой серьезной операции smile.gif

Да вот в том и дело, что нужно узнать с любыми правами ентого юзверя ...
А ежели сделать сервис и из программы обращаться к нему ?
Возможно получение такой инфы ? Он ведь уже не зависит от прав пользователя, или я ошибаюсь ?

Автор: DENNN 5.12.2003, 10:28
Цитата
Возможно получение такой инфы ? Он ведь уже не зависит от прав пользователя, или я ошибаюсь ?

Под каким аккаунтом он запущен - такие будут и права.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)