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


Автор: Alex 17.3.2005, 19:28
Народ, а как получить серийный номер процессора?

Автор: cardinal 17.3.2005, 20:15
Цитата
You cannot retrieve the serial number of CPU's. The serial number that's actually printed on the CPU is only an external indication.

http://www.experts-exchange.com/Programming/Programming_Languages/Delphi/Q_10181822.html

А вообще как я понял у Intel процессоров есть спец. команда для того чтобы получить ID, но и с ней какая-то неясность
http://developer.intel.com/design/xeon/applnots/241618.htm

То есть придется тебе все таки наверно к винчу цеплятся smile

p.s. тут еще всякая билиберда понаписана, но помоему это тоже все фуфло
http://www.extremetech.com/article2/0,3973,10426,00.asp

Автор: p0s0l 17.3.2005, 21:21
Будет что-то типа этого:
Код

type
  TCPUSerial = array [0..11] of byte;

function GetCPUSerial (out Serial : TCPUSerial) : Boolean; register;
asm
  pushad
  mov esi, eax
  xor eax, eax
  mov [esi + 0], eax
  mov [esi + 4], eax
  mov [esi + 8], eax
  cpuid
  cmp eax, 3 // если не поддерживается 3 подфункция, то облом
  jb @False

// проверяем бит 18 (PSN), если он 0, значит нет серийника
{  test edx, (1 shl 18) 
  jz @False }

  mov eax, 3 // получаем серийник
  cpuid
  mov [esi + 0], ecx
  mov [esi + 4], edx
@True:
  popad
  mov eax, 1
  ret

@False:
  popad
  xor eax, eax
  ret
end;
(код не проверял, .. но вроде ошибиться негде...)
Но не все процы поддерживают эту фичу... AMD - похоже, не поддерживает (по крайней мере на моём AthlonXP)... Intel - только Pentium III (так сказано в доках по Intel'ам, P4 и более поздние, а также P2 и более ранние - не поддерживают)... Мало того, так и не понятно, как получить все 96 бит серийника - CPUID возвращает только младшие 64 разряда...

Автор: Alex 17.3.2005, 22:40
Ладно, всем спасибо за ответы. Я тут сам еще покопался и понял фигня все этот серийник.

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