Вниз
Скачать: CL | DM;

Процесор   Найти похожие ветки 

← →
Andrew22   (2002-07-17 07:13) [0]

Как определить частоту проца в Delphi?


← →
Destroyer ©   (2002-07-17 07:18) [1]

ВРОДЕ ТАК:

function GetCPUSpeed: Double;
const

DelayTime = 500;
var

TimerHi : DWORD;
TimerLo : DWORD;
PriorityClass : Integer;
Priority : Integer;
begin

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

Sleep(10);

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

Sleep(DelayTime);

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

SetThreadPriority(GetCurrentThread, Priority);
SetPriorityClass(GetCurrentProcess, PriorityClass);

Result := TimerLo / (1000.0 * DelayTime);
end;


← →
Andrew22   (2002-07-17 09:58) [2]

А где это вс. писать? У меня не получилось...


← →
Andrew22   (2002-07-17 10:10) [3]

Меня кто-то слышит или видит? Ответьте!!!


← →
Игорь Шевченко ©   (2002-07-17 10:13) [4]

В реестре частота процессора записана
HKLM\HARDWARE\Description\System\CentralProcessor\0\~MHz


← →
Andrew22   (2002-07-17 10:18) [5]

Спастбо, Игорёк хоть ты то мне помог. Так гараздо проще.
А этот ключ у всех один и тотже?


← →
Игорь Шевченко ©   (2002-07-17 10:21) [6]

Для NT - систем - один и тот же, других под рукой нет


← →
Eugene Lachinov ©   (2002-07-17 10:48) [7]

По соседству оказалась Windows 95, в реестре информации нет, код указанный выше работает хорошо, показывает такое же значение что и в реестре, проверял на Windows 2000


← →
Andrew22   (2002-07-17 11:05) [8]

А в Мелениуме то он какой?


← →
Eugene Lachinov ©   (2002-07-17 11:12) [9]

В ME ключа нету


← →
Andrew22   (2002-07-17 11:18) [10]

А что делать?


← →
Destroyer ©   (2002-07-17 11:23) [11]

Я привел выше функцию, которая вычисляет частоту проца в мегагерцах. Чего ж еще?


← →
Song ©   (2002-07-17 12:01) [12]


function GetCPUSpeed: Double;
const
DelayTime = 500;
var
TimerHi, TimerLo: DWORD;
PriorityClass, Priority: Integer;
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);
Result := TimerLo / (1000 * DelayTime);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(Format("Your CPU speed: %f MHz", [GetCPUSpeed]));
end;


← →
Andrew22   (2002-07-24 10:26) [13]

Где это всё писать? У меня не получилось.


← →
Andrew22   (2002-07-24 10:28) [14]

Где это всё писать? У меня не получилось. Ни чего не пойму:-(


← →
Song ©   (2002-07-24 10:32) [15]

>>Где это всё писать? У меня не получилось.
Прямо в программе!


← →
Kin   (2002-07-25 22:01) [16]

Пиши на gorn@r66.ru я тебе исходники скину! В Виде файлов Дельфийских!!!


← →
Nalsur   (2002-07-29 11:58) [17]

Ты эти функции на нажатие кнопки навесь, и не забудь функцию обозначить в Interface.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.012 c
6-21169
Egen
2002-08-07 08:15
2002.10.07
Замещение стандартной процедуры сокетовых ошибок в 2тоннике


3-20901
Тормоз
2002-09-16 12:43
2002.10.07
Вопрос знатокам DOA


1-20963
Kacnep
2002-09-19 08:47
2002.10.07
Хитрый Tray


4-21306
Алёшка
2002-08-19 14:07
2002.10.07
Перехват WM_KeyDown у TApplication


1-21113
ych_boriss
2002-09-25 16:07
2002.10.07
HintWindow




   Наверх