''''/************************************************************************/
''''
'''' FileName: WriteUsage.vbs
''''
'''' Author: Chinafish
''''
'''' Email: china_fish@163.com
''''
'''' Homepage:
http://www.csinx.org
''''
'''' Desc: Write CPU & Memory usage
''''
''''/************************************************************************/
on error resume next
const TargetFile = "C:\Usage.log"
Dim dwTotalMem, dwAvailMem
''''定时循环记录
do while true
const ForReading = 1
const ForWriting = 2
Set fso = CreateObject("Scripting.FileSystemObject")
''''没有文件先创建文件
Set MyFile = fso.CreateTextFile(TargetFile, false)
MyFile.Close
''''打开创建的文件读出原来的内容
Set MyFile = fso.OpenTextFile(TargetFile, ForReading)
strContent = MyFile.ReadAll
MyFile.Close
''''先写原文件内容
Set MyFile = fso.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.Exec Query("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.Exec Query("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 fso = Nothing
Set MyFile = Nothing
''''睡眠达到定时操作目的 参数是ms 1000是1秒
WScript.Sleep 1000*60*1
Loop