| 
| 
 | Вопрос # 851/ вопрос открыт / | 
 |  Здравствуйте, уважаемые эксперты!Подскажите как узнать серийный номер винта ФИЗИЧЕСКИЙ не серийный номер раздела (getvolumeinfo)
 а именно физический номер винта из под делфи!
 A takzge mozgno li uznat seriinie nomera processorov i materinki?
 
|  |   Вопрос задал: Ilia Ermakov (статус: 1-ый класс)Вопрос отправлен: 13 августа 2007, 19:29
 Состояние вопроса: открыт, ответов: 2.
 |  Ответ #1. Отвечает эксперт: Матвеев Игорь Владимирович Здравствуйте, Ilia Ermakov!В вопросе 694 (вопрос #694) обсуждалась похожая тема, и решение тоже близко.
 
 Узнать серийный номер процессора можно с помощью все той же инструкции CPUID, с номером функции (EAX), равным 3. Эта функция доступна с Пентиумов 3, проме того, необходимо чтобы в BIOS было разрешено процессору сообщать этот идентификатор.
 
 При вызове CPUID с EAX = 3 в регистрах EDX:ECX возвращаются младшие 64 бита идентификатора, старшие 32 бита возвращаются в EAX при вызове CPUID с EAX = 0. В приложении немного доработанный пример из вопроса №694.
 
 См. статью Определение конфигурации на аппаратном уровне.
 
 Также, существует множество библиотек для привязки shareware программ к архитектуре компьютера, может стоит поискать и среди них.
 К ответу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки ответа)
 
 Ответ #2. Отвечает эксперт: Feniks Здравствуйте, Ilia Ermakov!Скачайте модуль CPUID.pas от сюда http://depositfiles.com/files/1487589. С помощью него можно получить подробную информацию о процессоре.
 
|  | Ответ отправил: Feniks (статус: Бакалавр)Время отправки: 14 августа 2007, 16:34
 
 |  
 Мини-форум вопросаВсего сообщений: 2; последнее сообщение — 14 августа 2007, 16:42; участников в обсуждении: 2. 
|   | Матвеев Игорь Владимирович (статус: Студент), 14 августа 2007, 08:10 [#1]:Совсем не заметил основной части вопроса, простите мне мою рассеянность. Но раз уж взялся отвечать, нужно отвечать до конца. 
 В NT физически параметры оборудования можно определить с помощью IOCTL прерываний и функции DeviceIoControl, в Win9x это делалось с помощью прямой отправки некоторых данных в порт и чтения с порта (это не всегда разрешено, поэтому придумывались различные решения).
 
 Небольшая программка, определяющая некоторую информацию о жестких дисках см. http://www.kamchat-auto.ru/HDD.rar (к сожалению в минифоруме нельзя прикреплять файлы, а сервис закачки преостановлен, поэтому закачал сюда), работает в NT. Обязательно проверьте код программы, я писал ее в спешке и мог что-то перепутать (в разборе вывода).
 
 Также в архиве исходники небольшой консольной программки на С++, которая послужила мне основой, для написания моей, там Вы можете посмотреть как можно реализовать ту же функциональность а Win9x.
 |  
|   | Feniks (статус: Бакалавр), 14 августа 2007, 16:42 [#2]:По жестким дискам все гораздо сложней. "Матвеев Игорь Владимирович" прав, все зависит от винды. Несколько лет назад я занимался этим вопросом и у меня есть наработки и сорцы. Если Вам это очень нужна, обращайтесь с 3 сентября, т.к. я на днях уезжаю в отпуск и буду с 3 сентября в IRC, сеть DalNet.ru на канале #DelphiIntRu. Милости просим. |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |