作者:电脑信息网日期:
返回目录:电脑蓝屏
参考百代度码问如答下专:属
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor",,48)
For Each objItem in colItems
WScript.Echo "LoadPercentage: " & objItem.LoadPercentage
Next
这几个API,看看吧GetProcessAffinityMask SetProcessAffinityMask SetThreadAffinityMask
日志最好还是保留一百下,有日志有助于发现问题。目前是度2M一个,超过之后会自动重新创建一知个。定时清理道一下就行了。
如果不需要日志的话,去掉
objTextFileWriter.WriteLine("【" & Now & "】回cpu使用率:" & iCpuUsePercentage & "%,使用率超80%持续时间:" & CStr(iSecond))
这句答就行了。
Private Declare Function SetProcessAffinityMask Lib "kernel32.dll" (ByVal hProcess As Integer, ByVal dwProcessAffinityMask As Long) As Boolean
Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal Hwnd As Long, lpdwProcessId As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
'参数说e799bee5baa6e4b893e5b19e337明:Hwnd 窗口句柄 ,CpuSer 设置当前窗口在那个CPU上运行【CPU(0) 参数为 1,CPU(1) 参数为 2..其余自己琢磨】
Private Function SetCpu(ByVal Hwnd As Long, ByVal CpuSer As Long)
Dim pid, hProcess As Long
Process_All_Access = &H1F0FFF
Call GetWindowThreadProcessId(Hwnd, pid)
hProcess = OpenProcess(Process_All_Access, False, pid)
SetProcessAffinityMask hProcess, CpuSer
End Function