Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как узнать серийный номер процессора и винчестера [D6, WinXP]


Страницы:   1 2

Wadimka ©   (2009-01-30 14:03:00) 

Подскажите, как узнать серийный номер процессора и винчестера?


AllDontFire   (2009-05-06 15:56:00) [21]

http://home.earthlink.net/~akonshin/delphi_ru.htm
В этом сайте есть 4 примера по сабжу, с сожалению, ни один из них не сработал на Win64 и Висте (да и там не сказано что проверялось на 64 бит и Висте).
Пример ScsiSN использует $0004D004 - IOCTL_SCSI_PASS_THROUGH,
но серийного номера там нет. (кстати чтоб это увидеть, нужно переделать пример):  
if DeviceIoControl( DeviceHandle, $0004d004, @sptwb, SizeOfTScsiPassThrough), @sptwb, len, dwReturned, nil )
//and ((PChar(@sptwb.bDataBuf)+1)^=#$80)
 then for i:=0 to 191 do write(sptwb.bDataBuf[i])

В описании  var bDataBuf изменить на char и добавить i:byte.

У меня есть рабочий пример (\\.\PhysicalDrive и Smart под админом) под Win64, но под Vista он не работает (DoEnableSmart выдаёт "неверная функция).

На http://www.astra32.com/ru/есть программа определяющая серийник под Вистой, так что сабж возможен :-)


Игорь Шевченко   (2009-05-05 19:32:00) [22]


> У кого-нибудь есть рабочие примеры для приведенных случаев?


у Коншина ?


AllDontFire   (2009-05-05 18:06:00) [23]

Мне попался пример "WMI.zip", в котором перечисляются все классы со всеми их данными. Так вот в классе Win32_DiskDrive, наверное, есть всё, кроме серийного номера HDD. На одном форуме видел пост, что там серийника быть и не должно, он есть в классе Win32_PhysicalMedia - да, свойство SerialNumber там есть, но в рез. данных только:
instance of Win32_PhysicalMedia {Tag = "\\\\.\\PHYSICALDRIVE0";};

1)Вот пример опредения через \\.\SCSI и IOCTL_SCSI_MINIPORT:
http://www.delphikingdom.com/asp/answer.asp?IDAnswer=18102
2)Вот через \\.\PhysicalDrive и Smart. Пример на C++.
http://www.sql.ru/forum/actualthread.aspx?tid=378384

(винт SATA II):
1 - не работает под Win64 и Vista.
2 - не работает под Vista (под админом DoEnableSmart выдаёт "неверная функция")

У кого-нибудь есть рабочие примеры для приведенных случаев?


clickmaker   (2009-01-30 14:07:00) [24]

например, через WMI, классы Win32_Processor и Win32_DiskDrive


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо