Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 851

/ вопрос открыт /

Здравствуйте, уважаемые эксперты!
Подскажите как узнать серийный номер винта ФИЗИЧЕСКИЙ не серийный номер раздела (getvolumeinfo)
а именно физический номер винта из под делфи!
A takzge mozgno li uznat seriinie nomera processorov i materinki?

Ilia Ermakov Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: 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 дней с момента отправки ответа)

Ответ отправил: Матвеев Игорь Владимирович (статус: Студент)
Время отправки: 14 августа 2007, 03:17
Оценка за ответ: 5

Ответ #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

Feniks (статус: Бакалавр), 14 августа 2007, 16:42 [#2]:

По жестким дискам все гораздо сложней. "Матвеев Игорь Владимирович" прав, все зависит от винды. Несколько лет назад я занимался этим вопросом и у меня есть наработки и сорцы. Если Вам это очень нужна, обращайтесь с 3 сентября, т.к. я на днях уезжаю в отпуск и буду с 3 сентября в IRC, сеть DalNet.ru на канале #DelphiIntRu. Милости просим.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:50
Выполнено за 0.03 сек.