Форум: "WinAPI";
Текущий архив: 2011.03.27;
Скачать: [xml.tar.bz2];
ВнизКак узнать серийный номер процессора и винчестера Найти похожие ветки
← →
Wadimka (2009-01-30 14:03) [0]Подскажите, как узнать серийный номер процессора и винчестера?
← →
clickmaker © (2009-01-30 14:07) [1]например, через WMI, классы Win32_Processor и Win32_DiskDrive
← →
AllDontFire (2009-05-05 18:06) [2]Мне попался пример "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 выдаёт "неверная функция")
У кого-нибудь есть рабочие примеры для приведенных случаев?
← →
Игорь Шевченко © (2009-05-05 19:32) [3]
> У кого-нибудь есть рабочие примеры для приведенных случаев?
у Коншина ?
← →
AllDontFire (2009-05-06 15:56) [4]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/ есть программа определяющая серийник под Вистой, так что сабж возможен :-)
← →
Nickoss © (2009-05-06 17:59) [5]
> в классе Win32_DiskDrive, наверное, есть всё, кроме серийного
> номера HDD
А чего ж нет ? Вот, вроде есть
http://msdn.microsoft.com/en-us/library/aa394132(VS.85).aspx
SerialNumber string
← →
AllDontFire (2009-05-06 18:25) [6]Там чуть ниже :-) :
> SerialNumber
>
> Data type: string
> Access type: Read-only
>
> Number allocated by the manufacturer to identify the
> physical media.
>
> Example: WD-WM3493798728
>
> Windows Server 2003, Windows XP, Windows 2000, and
> Windows NT 4.0: This property is not available.
← →
Nickoss © (2009-05-06 20:43) [7]Нашел интересный архивчик с демкой по WMI. Серийник винта определяется из под Висты. Исходники прилагаются.
http://www.magsys.co.uk/delphi/magwmi.asp
← →
AllDontFire (2009-05-06 22:56) [8]Спасибо за пример по WMI, но и он не справился с тем хардом на Висте. И дело, похоже не в Висте. Помню пару лет назад на Висте обычный IDE винт определялся смартом на раз-два.
В общем, винт c виду обычный Serail Ata.
OS: Ms Windows Vista Home Basic 6.0.6000
В примере определяется как WDC WD25 00AAJS-00VWA SCSI Disk Device (так он называется в диспетчере устройств)
По кнопке “Disk SMART” выдаёт «No SCSI Drive Serial Number Returned». В других местах серийника тоже нет (Ткните пальцем, плиз, если не туда жму).
Что выдаёт Astra32:
Модель м. платы WinFast 6100M2MA
Имя чипсета NVIDIA GeForce 6100/6150/nFoce 500 Family
Чипсет C51 Host Bridge
Южный мост MCP51 LPC Bridge
Hdd:
Model: WDC WD25 00AAJS-00VWA
Interface Type : Serial Ata II
Serial: WD-WM[demo]
Verdor ATA controller: Nvidia
Name ATA controller: MCP51 SATA controller
Location: Tertiary/Master.
Кстати у меня винт на WinXP64bit тоже Serial ATA II, определяется астрой, если просто выбрать «Жёсткий диск», а на той Висте нужно ещё включить “Внешний UDMA/SATA”, хотя винт в корпусе подключен сразу в материнку.
← →
brother © (2009-05-07 04:17) [9]> а на той Висте нужно ещё включить “Внешний UDMA/SATA”, хотя
> винт в корпусе подключен сразу в материнку.
может "дрова" коряво встали или не от него?
← →
QAZ (2009-05-07 14:33) [10]у процесоров нет серийника
а у диска проще всего узнать серийник тома
← →
Anatoly Podgoretsky © (2009-05-07 16:03) [11]Задачу то какую решаешь?
← →
AllDontFire (2009-05-07 18:39) [12]Задача:
Получить серийный номер Hdd и использовать его для защиты ПО.
← →
Nickoss © (2009-05-07 19:38) [13]Прога testwmi.
> По кнопке “Disk SMART” выдаёт «No SCSI Drive Serial Number
> Returned»
А что выдает по кнопке "Disk serial (xp)" ?
или по кнопке "Get Class or Query" Win32_PhysicalMedia в разделе SerialNumber.
Кстати, а нельзя ли привязаться к PNPDeviceID из Win32_DiskDrive ? Его легко вытащить и из системного реестра. Только вот насколько он уникальный и неизменяемый.
← →
AllDontFire (2009-05-07 20:06) [14]"Disk serial (xp)" --NULL
"Get Class or Query" Win32_PhysicalMedia" -- NULL все кроме Tag.
> привязаться к PNPDeviceID
- интересная идея, конечно, но опять же сразу вопросы
> насколько он уникальный и неизменяемый"
Мне, благодаря "Астре", уже хочется найти код для "Внешний UDMA/SATA”.
← →
Сергей М. © (2009-05-07 20:22) [15]
> обычный IDE винт
> винт c виду обычный Serail Ata
Хрень какая-то ..
Левый глаз видит на винте IDE-разъем, а правый глаз на том же винте видит SATA-разъем ?
← →
Nickoss © (2009-05-07 20:43) [16]Попробовал подключить IDE-диск через USB-адаптер - та же картина. testwmi его определяет, но в SerialNumber = NULL. По кнопке "Disk model" пишет ST322413A USB Device, также определяются размер, caption. Всё это из под ХР.
Нашел еще два параметра, ИМХО, уникальных:
Win32_BaseBoard SerialNumber (15-значный ID). Номер совпадает с номером на узкой наклейке со штрих-кодом, расположенной справа от разъема питания материнки (Asus P5K-E).
Win32_Processor ProcessorId (16-значное шестнадцатиричное число).
← →
AllDontFire (2009-05-07 21:01) [17]Сергей М. ,
это 2 разных HDD.
← →
AllDontFire (2009-05-07 21:11) [18]Nickoss,
У меня Win32_BaseBoard SerialNumber выдал "MB-1234567890" для Asus P5B.
ProcessorID более вменяемый правда.
← →
DVM © (2009-05-08 00:13) [19]
> Nickoss © (06.05.09 20:43) [7]
>
> Нашел интересный архивчик с демкой по WMI. Серийник винта
> определяется из под Висты.
Под админом только
← →
Германн © (2009-05-08 02:00) [20]
> AllDontFire (07.05.09 18:39) [12]
>
> Задача:
> Получить серийный номер Hdd и использовать его для защиты
> ПО.
>
А моэжет не стОит?
← →
Nickoss © (2009-05-08 10:06) [21]
> Под админом только
??? И под обычным юзером всё работает, только что проверил. Отказано в доступе только по кнопке "Disk smart".
По "Disk serial (xp)" и
"Win32_PhysicalMedia" SerialNumber выдается та же инфа, что и под админом.
Vista Business SP1.
← →
имя (2009-05-23 18:37) [22]Удалено модератором
← →
Виктор85 (2009-05-29 12:29) [23]Интересно, а эта штука правильно определяет хард
http://www.soft.tahionic.com/download-hdd_id/free-download/app-source-code.html
← →
имя (2009-07-06 09:29) [24]Удалено модератором
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2011.03.27;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.004 c