1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| double __fastcall GetCPUSpeed()
{
int tempsdelai(100);
DWORD classepriorite=GetPriorityClass(GetCurrentProcess);
int priorite=GetThreadPriority(GetCurrentThread);
SetPriorityClass(GetCurrentProcess, REALTIME_PRIORITY_CLASS);
SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_TIME_CRITICAL);
DWORD hauttimer, bastimer;
Sleep(10);
asm
{
dw 310Fh
mov bastimer, eax
mov hauttimer, edx
}
Sleep(tempsdelai);
asm
{
dw 310Fh
sub eax, bastimer
sbb edx, hauttimer
mov bastimer, eax
mov hauttimer, edx
}
SetThreadPriority(GetCurrentThread, priorite);
SetPriorityClass(GetCurrentProcess, classepriorite);
return bastimer/(1000*tempsdelai);
}
//--------------------------------------------------------------------------- |