能力值:
( LV13,RANK:530 )
2 楼
收
下
(破解6字限制)
能力值:
( LV5,RANK:60 )
3 楼
楼上更强.以前没听过的用法.谢谢.
能力值:
( LV2,RANK:10 )
4 楼
有没有人用过'ZwQuerySystemInformation'计算呀
_GetCpuUsage proc
LOCAL @pNtDll:dword
LOCAL @pQuerySystemInfomation:dword
LOCAL @SysBaseInfo:SYSTEM_BASIC_INFORMATION
LOCAL @dwProcessorNum:dword
LOCAL @SysNewTime:SYSTEM_TIME_INFORMATION
LOCAL @SysPerfTime:SYSTEM_PERFORMANCE_INFORMATION
LOCAL @dbIdleTime:DOUBLE
LOCAL @dbSystemTime:DOUBLE
LOCAL @liOldIdleTime:LARGE_INTEGER
LOCAL @liOldSystemTime:LARGE_INTEGER
LOCAL @CurrentCpuUsage:DOUBLE
LOCAL @TmpDouble:DOUBLE
LOCAL @Ret:dword
.data
@@_100 DOUBLE 100.0
@@_05 DOUBLE 0.5
_TWO_32 DOUBLE 42949672969.0 ;4*1024*1024*1024
.code
pushad
invoke RtlZeroMemory,addr @SysBaseInfo,sizeof @SysBaseInfo
invoke LoadLibrary,_T("NtDll.dll")
.if !eax
MyDebug "LoadLibrary Failed!"
ret
.endif
mov @pNtDll,eax
invoke GetProcAddress,@pNtDll,_T("ZwQuerySystemInformation")
.if !eax
MyDebug "GetProcAddress Failed!"
ret
.endif
mov @pQuerySystemInfomation,eax
;=============取处理器个数===================
push 0
mov eax,sizeof @SysBaseInfo
push eax
lea eax,@SysBaseInfo
push eax
push 0
call @pQuerySystemInfomation
.if eax!=0
MyDebug "Get Processor Number Failed"
ret
.endif
xor eax,eax
mov al,@SysBaseInfo.NumberProcessors
mov @dwProcessorNum,eax
;=============取处理器个数===================
;=============取新的系统时间===================
push 0
mov eax,sizeof @SysNewTime
push eax
lea eax,@SysNewTime
push eax
push 3
call @pQuerySystemInfomation
.if eax!=0
MyDebug "Get System Time Failed"
ret
.endif
;=============取新的系统时间===================
;=============获得cpu空闲时间===================
push 0
mov eax,sizeof @SysPerfTime
push eax
lea eax,@SysPerfTime
push eax
push 2
call @pQuerySystemInfomation
.if eax!=0
MyDebug "Get System PerfTime Failed"
ret
.endif
;=============获得cpu空闲时间===================
;=============计算cpu使用率===================
;当前空闲时间值=新的空闲时间值-旧的空闲时间值
;当前系统时间值=新的系统时间值-旧的系统时间值
;当前cpu使用率%=100.0-(当前空闲时间*100.0)/cpu处理器个数+0.5
;=============计算cpu使用率===================
invoke FreeLibrary,@pNtDll
popad
ret
_GetCpuUsage endp
取计算cpu使用率时老是溢出,哪位可以帮忙完成下....