|
Вопрос # 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. Милости просим.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|