有什么Api可以取CPu的主频、内存和显存的

AirFish 2002-12-01 06:02:02
应该不是太难的问题吧,小弟资料缺乏,请救急!
...全文
222 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
batbit 2002-12-15
  • 打赏
  • 举报
回复
xiaoyan21(明月心) :
我也要一份电子文档。ttcx@263.net
  • 打赏
  • 举报
回复
我也要,谢谢,czhall@21cn.com
quark 2002-12-03
  • 打赏
  • 举报
回复
//==============================================================================
//获得CPU速度****************************************************************
//==============================================================================
function GetCPUSpeed: Double;
const DelayTime = 500;
var TimerHi, TimerLo: DWORD;
PriorityClass, Priority: Integer;
begin
try
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);
except
Result := 0;
end;
end;

//==============================================================================
//获得内存状态******************************************************************
//==============================================================================
function GetMemoryStatus:TMemoryStatus;
begin
ZeroMemory(@Result,SizeOf(Result));
Result.dwLength:=SizeOf(Result);
GlobalMemoryStatus(Result);
{内存状态 type TMemoryStatus = record
dwLength: DWORD;
dwMemoryLoad: DWORD;
dwTotalPhys: DWORD;
dwAvailPhys: DWORD;
dwTotalPageFile: DWORD;
dwAvailPageFile: DWORD;
dwTotalVirtual: DWORD;
dwAvailVirtual: DWORD;
end;
}
end;
xiaoyan21 2002-12-01
  • 打赏
  • 举报
回复
给个信箱,我发个WindowsAPI电子书籍给你.

ehom 2002-12-01
  • 打赏
  • 举报
回复
Function TMain.GetCPUSpeed: Double;
const
DelayTime = 500;
var
TimerHi, TimerLo: DWORD;
PriorityClass, Priority: Integer;
begin
try
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 // 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);
except
end;
end;

var
FMemStat:TMemoryStatus;
FMemoryLoad:DWORD;
FTotalPhys:DWORD;
FAvailPhys:DWORD;
FTotalPageFile:DWORD;
FAvailPageFile:DWORD;
FTotalVirtual:DWORD;
FAvailVirtual:DWORD;
begin
ZeroMemory(@FMemStat,SizeOf(FMemStat));
FMemStat.dwLength:=SizeOf(FMemStat);
GlobalMemoryStatus(FMemStat);
FMemoryLoad := FMemStat.dwMemoryLoad;
FTotalPhys := FMemStat.dwTotalPhys;
FAvailPhys := FMemStat.dwAvailPhys;
FTotalPageFile := FMemStat.dwTotalPageFile;
FAvailPageFile := FMemStat.dwAvailPageFile;
FTotalVirtual := FMemStat.dwTotalVirtual;
FAvailVirtual := FMemStat.dwAvailVirtual;
end;
AirFish 2002-12-01
  • 打赏
  • 举报
回复
xiaoyan21(明月心) :
zpan1978@163.com.收到就给分,谢谢了!

1,184

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧