2010-10-07 2 views
3

Я ищу для создания уникального идентификатора для некоторых встроенных систем, которыми я управляю. В системах работает Windows Embedded 7 Standard и .NET 4.0. Идентификаторы должны:Постоянный идентификатор системы/процессора, который остается на перестановках и изменениях на диске (C#)

  • Будьте относительно уникальными - каждая встроенная система работает на одной материнской плате, диске и т. Д., И я не могу столкнуться.
  • Устойчив к переустановке - эти компьютеры регулярно обновляются в новых версиях нашего программного обеспечения.
  • Нельзя полагаться на серийный номер диска - мы не используем настоящие диски, а CF-карты с адаптером CF to SATA, а CF-карты периодически выгружаются.

Кроме того, у меня есть несколько сетевых адаптеров в машине, поэтому использование внутреннего бортового сетевого адаптера будет работать только в том случае, если кто-то скажет мне, как определить, какая сетевая плата находится на борту через USB-устройство. После дальнейших исследований похоже, что это невозможно в рамках управляемого кода.

Каков наилучший способ для этого?

ответ

2

Я предлагаю вам использовать WMI для получения информации о процессоре машины, используя класс Win32_Processor. Затем вы можете создать уникальный идентификатор для машины из таких атрибутов, как ProcessorId и UniqueId.

Таким образом, вы должны использовать процессор каждой машины как постоянный «магазин» для идентификатора машины.

+0

Согласно http://stackoverflow.com/questions/1101772/win32-processoris-processorid-unique-for-all-computers, «ProcessorId» не уникален для всех ПК. –

+0

Вот почему вам нужно объединить его с UniqueId. В принципе, ProcessorId дает вам модель или набор функций процессора, а UniqueId уникален в данной модели или наборе функций. По-видимому, комбинация обоих, по-видимому, уникальна для разных машин. – CesarGon

+1

UniqueId возвращается как нуль для каждой системы, которую я тестировал. По мнению некоторых Google, это похоже только на Pentium III. –

Смежные вопросы