![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать серийный номер процессора и винчестера [D6, WinXP]
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