VBS windows监控
http://bbs.csdn.net/topics/230078112
'/************************************************************************/ ' ' FileName: WriteUsage.vbs ' ' Author: Chinafish ' ' Email: china_fish@163.com ' ' Homepage: http://www.csinx.org ' ' Desc: Write CPU & Memory usage ' '/************************************************************************/ On Error Resume Next Dim dwTotalMem, dwAvailMem Const szRootDir = "D:\CPU\" '定时循环记录 Do While True Const ForReading = 1 Const ForWriting = 2 Set oFSO = CreateObject("Scripting.FileSystemObject") '计算当日记录文件名 Today = Date() TargetFile = szRootDir & Year(Today) & Right("00" & Month(Today),2) & Right("00" & Day(Today),2) & ".log" '没有文件先创建文件 Set MyFile = oFSO.CreateTextFile(TargetFile, false) MyFile.Close '打开创建的文件读出原来的内容 Set MyFile = oFSO.OpenTextFile(TargetFile, ForReading) strContent = MyFile.ReadAll MyFile.Close '先写原文件内容 Set MyFile = oFSO.OpenTextFile(TargetFile, ForWriting) '文件无内容时写文件头 if strContent <> "" then MyFile.WriteLine(strContent) else MyFile.WriteLine("/*Usage.log file write by Chinafish.*/") MyFile.WriteBlankLines 1 End if '写开始时间 MyFile.WriteLine("程序启动时间: " & Now()) '本地电脑 strComputer = "." '连接到本地电脑 Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.InstancesOf("Win32_LogicalMemoryConfiguration") '总计物理内存 For Each colItem In colItems dwTotalMem = CLng(colItem.TotalPhysicalMemory / 1024) MyFile.WriteLine("总计物理内存: " & CLng(colItem.TotalPhysicalMemory / 1024) & "MB") Next '剩余内存 Set colItems = objWMIService.ExecQuery("Select * from Win32_PerfRawData_PerfOS_Memory",,48) For Each objItem in colItems dwAvailMem = objItem.AvailableMBytes MyFile.WriteLine("剩余物理内存: " & objItem.AvailableMBytes & "MB") Next '物理内存使用率(第一行精确到小数后2位, 第二行取整数) 'MyFile.WriteLine("物理内存使用: " & CInt((1 - dwAvailMem/dwTotalMem)*100*100)/100 & "%") MyFile.WriteLine("物理内存使用: " & CInt((1 - dwAvailMem/dwTotalMem)*100) & "%") 'CPU数和使用率 Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor",,48) i = 0 For Each objItem in colItems MyFile.WriteLine("CPU(" & i & ")使用率: " & objItem.LoadPercentage & "%") i = i + 1 Next '写结束时间 MyFile.WriteLine("程序结束时间: " & Now()) MyFile.Close Set oFSO = Nothing Set MyFile = Nothing '睡眠达到定时操作目的 参数是ms 1000是1秒 WScript.Sleep 1000*60*1 Loop
自行修改版。
On Error Resume Next Dim dwTotalMem, dwAvailMem Const szRootDir = "D:\CPU\" Set oFSO = CreateObject("Scripting.FileSystemObject") Const ForReading = 1 Const ForWriting = 2 '计算当日记录文件名 Today = Date() TargetFile = szRootDir & Year(Today) & Right("00" & Month(Today),2) & Right("00" & Day(Today),2) & Hour(Now) & ".log" '没有文件先创建文件 Set MyFile = oFSO.CreateTextFile(TargetFile, false) MyFile.Close Set MyFile = oFSO.OpenTextFile(TargetFile, ForWriting) '写开始时间 MyFile.WriteLine("程序启动时间: " & Now()) '本地电脑 strComputer = "." '连接到本地电脑 Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.InstancesOf("Win32_LogicalMemoryConfiguration") '总计物理内存 For Each colItem In colItems dwTotalMem = CLng(colItem.TotalPhysicalMemory / 1024) MyFile.WriteLine("总计物理内存: " & CLng(colItem.TotalPhysicalMemory / 1024) & "MB") Next '剩余内存 Set colItems = objWMIService.ExecQuery("Select * from Win32_PerfRawData_PerfOS_Memory",,48) For Each objItem in colItems dwAvailMem = objItem.AvailableMBytes MyFile.WriteLine("剩余物理内存: " & objItem.AvailableMBytes & "MB") Next 'CPU数和使用率 Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor",,48) i = 0 For Each objItem in colItems MyFile.WriteLine("CPU(" & i & ")使用率: " & objItem.LoadPercentage & "%") i = i + 1 Next MyFile.Close Set oFSO = Nothing Set MyFile = Nothing
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端