Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Как Определить сер номер материнки и процессора?


Автор: VictorBondarenko 4.11.2006, 11:00
Уважаемые дузья!
Подскажите пожалуйста, как из проги на Delphi
определить серийный номер процессора и материнки.

  С благодарностью и уважением,
                Виктор

Автор: Snowy 4.11.2006, 12:28
Цитата(VictorBondarenko @  4.11.2006,  12:00 Найти цитируемый пост)
серийный номер процессора
Эта функция поддерживается не всеми процессорами.
Для получения информации о процессоре (в т.ч. серийного номера, если это поддерживается) есть такой компонент: http://www.torry.net/vcl/system/cpu/acpuid.zip

Цитата(VictorBondarenko @  4.11.2006,  12:00 Найти цитируемый пост)
и материнки
Материнка - не есть цельное устройство.
Получить её серийный номер нельзя.
Но можно получить серийный номер BIOS'a - в FAQ есть пример.

Автор: VictorBondarenko 8.11.2006, 14:57
Уважаемый Модератор!

Я посмотрел компонент acpuid, о котором Вы написали,
но при его компиляции возникает ошибка.
Система не находит юнит DsgnIntf.
Есть в компоненте такая строка: 
uses  ..... , DsgnIntf;

Может чего-нибудь присоветуете?

С благодарностью и уважением, 
           Виктор

Автор: Alexeis 8.11.2006, 15:39
Цитата(VictorBondarenko @  8.11.2006,  14:57 Найти цитируемый пост)
uses  ..... , DsgnIntf;

А знаю, этот модуль требуется в старых версиях делфи. Нужно поискать компонентик для вашей версии.

Автор: Snowy 8.11.2006, 15:47
Цитата(VictorBondarenko @  8.11.2006,  15:57 Найти цитируемый пост)
но при его компиляции возникает ошибка.Система не находит юнит DsgnIntf.
Просто он написан под Delphi5.
Для 7-ки нужно дорабатывать руками.
DsgnIntf требовался для интеграции в дельфи редактора пропертей данного компонента.
Можно вообще вырезать этот редактор из кода - нет особого смысла делать его компонентом.
Главное там - функциональные классы.
Их нужно смотреть и использовать как пример.
Если всё таки хочется установить его именно, как компонент, то стоит поискать решение проблемы установки старых компонентов:
FAQ: http://vingrad.ru/DELPHI-DLP-000314
Поиск: http://www.google.ru/search?q=DsgnIntf+site:forum.vingrad.ru

Автор: Alexeis 8.11.2006, 16:38
Snowy, Я пробовал решить эту проблему. Тут самый тяжелый случай совмещения DisignTime и RunTime. Как пишут тут http://community.borland.com/article/27717
Требуется разделение модуля на две части (DisignTime и RunTime отдельно). Т.е. нужно перелопатить весь модуль. Это довольно сложно. Кроме того в одной из ассемблерных вставок применяется оператор dw его нужно заменить на обычную переменную типа word c тем же именем.

Автор: Albinos_x 8.11.2006, 16:45
примеров получения серийника проца в интернете полно... вот к примеру один из них (см. прикреплёный файл)

Добавлено @ 16:53 
ещё http://delphiworld.narod.ru/base/get_cpu_info.html

Автор: VictorBondarenko 8.11.2006, 19:32
Чего-то не скачивается присоединенный "Albinos X" файл
почему-то говорит, что Эта функция запрещена для Гостей, хотя я участник.
                        Виктор

Автор: Snowy 8.11.2006, 19:36
Перезалил сюда: http://slil.ru/23373217
И этот вариант у меня не даёт ничего. Выдал серийник 0000-0000-0000-0000-0000-0000
Не поддерживает мой проц (XP2500+) выдачу номера.

Автор: VictorBondarenko 9.11.2006, 21:16
Но если все так мрачно, что где-то s/n проца определяется, а где-то нет,
если s/n BIOSa из $FEC71 для 98 читается, а для ХР нет, если в реестре,
который читается в ХР не содержится s/n BIOSa, если s/n материнки можно
прочитать только на коробке, то что же тогда есть в железе фундаментального
и уникального которое бы всегда было и программно читалось чтобы можно было бы привязать прогу к компу?

 Может быть сер.ном. модуля памяти, сер ном. монитора, сер. ном. памяти на видеокарте, 
сер.ном. винта?
  Наверняка кто-то уже такую задачу решал и не один раз.   
                                            С уважением и признательностью за любые соображения,
                                                    Виктор
         

Автор: Albinos_x 10.11.2006, 22:24
по ссылке смотрели?

тоже не работает?

Цитата(VictorBondarenko @  9.11.2006,  21:16 Найти цитируемый пост)
сер.ном. винта

можно использовать, только вот для SATA винтов нормального алгоритма е нашёл... для обычных пример есть в DRKB...

Автор: Burm 11.11.2006, 09:49
Пример получения серийного номера винта есть в DRKB, сам попробовал - вроде на всех машинах работает.

Автор: Albinos_x 13.11.2006, 15:49
Цитата(Burm @  11.11.2006,  09:49 Найти цитируемый пост)
сам попробовал - вроде на всех машинах работает

Цитата(Albinos_x @  10.11.2006,  22:24 Найти цитируемый пост)
 только вот для SATA винтов нормального алгоритма е нашёл

здесь подтвердение:
http://forum.vingrad.ru/topic-115197.html

Автор: ArtemRubtsov 13.11.2006, 22:34
серийный номер на мать можно вытащщить из БИОСа (если серийник там есть, обычно нет)
из под 2000/ХР нужно писать процедуру доступа к физической памяти, пример точно есть на каком-то сайте по Delphi

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)