Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

CPU [D7, Win95/98, WinME, NT4, Win2k, WinXP]


DeMan ©   (2003-08-23 00:34:00) 

Как на дельфЕ узнать всё о CPU


Vlad Oshin   (2003-08-26 12:16:00) [1]

http://www.podgoretsky.com

Анатолий, за рекламу мне будет чего-нибудь :)


y-soft   (2003-08-25 17:05:00) [2]

Вот, случайно наткнулся:

http://www.carbonsoft.com/downloads.asp


NightAngel   (2003-08-24 20:20:00) [3]

> default ©

Не в лом :)

http://developer.intel.com/design/pentium4/manuals/245471.htm


default   (2003-08-24 19:54:00) [4]

NightAngel ©
кинь линк на это рук-во если не в лом


NightAngel   (2003-08-24 15:44:00) [5]

> Как замутить CPUID в D5?

Точно так-же, как и в D7. ;)


NULL_POLNY   (2003-08-24 07:35:00) [6]

Удалено модератором
Примечание: Вопросы в своей ветке.


NightAngel   (2003-08-23 16:44:00) [7]

Точно так-же, с помощью - CPUID, см. IA-32 Intel® Architecture
Software Developer’s Manual Volume 2:Instruction Set Reference.


Sheng   (2003-08-23 11:12:00) [8]

А как получить инфу типа той, что показывает AIDA ? Она показывает тип корпуса, размер первоко и второго кэша, тип и название проца, кол-во выводов на нём, напряжения питания, потребляемую мощность и ещё что-то там. Как ЭТО узнать ?


Novenkij   (2003-08-23 04:32:00) [9]


type
TVendor = array [0..11] of Char;
TForm1 = class(TForm)
...

function GetCPUSpeed: string; // CPU speed
const
DelayTime = 500;
var
TimerHi : DWORD;
TimerLo : DWORD;
PriorityClass : Integer;
Priority : Integer;
ilt : Integer;
sss : String;
begin

PriorityClass := GetPriorityClass(GetCurrentProcess);
Priority := GetThreadPriority(GetCurrentThread);
SetPriorityClass(GetCurrentProcess, REALTIME_PRIORITY_CLASS);
SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_TIME_CRITICAL);

Sleep(10);

asm
DW 310Fh
MOV TimerLo, EAX
MOV TimerHi, EDX
end;

Sleep(DelayTime);

asm
DW 310Fh
SUB EAX, TimerLo
SBB EDX, TimerHi
MOV TimerLo, EAX
MOV TimerHi, EDX
end;

SetThreadPriority(GetCurrentThread, Priority);
SetPriorityClass(GetCurrentProcess, PriorityClass);
sss := floattostr(TimerLo / (1000.0 * DelayTime));
ilt := pos(",", sss);
sss := copy(sss, 1, ilt-1);
Result := sss;
end;

function GetCPUVendor : TVendor; assembler; register; // CPU vendor
asm
PUSH EBX {Save affected register}
PUSH EDI
MOV EDI,EAX {@Result (TVendor)}
MOV EAX,0
DW $A20F {CPUID Command}
MOV EAX,EBX
XCHG EBX,ECX
MOV ECX,4
@1:
STOSB
SHR EAX,8
LOOP @1
MOV EAX,EDX
MOV ECX,4
@2:
STOSB
SHR EAX,8
LOOP @2
MOV EAX,EBX
MOV ECX,4
@3:
STOSB
SHR EAX,8
LOOP @3
POP EDI
POP EBX
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text := GetCPUSpeed;
Edit2.Text := GetCPUVendor;
end;



Скорость и производитель. Точно работает под Win2000/XP.


Наверх

Титульная страница Поиск, карта сайта Написать письмо