Форум: "Система";
Текущий архив: 2002.10.07;
Скачать: [xml.tar.bz2];
ВнизПроцесор Найти похожие ветки
← →
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 вся ветка
Форум: "Система";
Текущий архив: 2002.10.07;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.011 c