作者yohoboy (小宝包是天使与恶魔)
看板EzHotKey
标题[-AI-] 监控某程式记忆体使用量及剩余记忆体量
时间Wed Jan 7 10:46:27 2015
采用AUTOIT 编写,组译好後可以配合WINDOWS 工作排程自行安排检查时间
共可以监控4个程式记忆体使用量是否达标及系统记忆体剩下多少提醒。
----AUTOIT 程式码 因BBS字数限制所以请COPY下来重新编排------
#Include <Date.au3>
#include <Process.au3>
$var1 = IniRead("memory.ini", "PROGRAMNAME", "PROGRAMNAME1", "")
$var2 = IniRead("memory.ini", "PROGRAMNAME", "PROGRAMNAME2", "")
$var3 = IniRead("memory.ini", "PROGRAMNAME", "PROGRAMNAME3", "")
$var4 = IniRead("memory.ini", "PROGRAMNAME", "PROGRAMNAME4", "")
$var5 = IniRead("memory.ini", "MEMORYSIZE", "PROGRAMNAME1", "0")
$var6 = IniRead("memory.ini", "MEMORYSIZE", "PROGRAMNAME2", "0")
$var7 = IniRead("memory.ini", "MEMORYSIZE", "PROGRAMNAME3", "0")
$var8 = IniRead("memory.ini", "MEMORYSIZE", "PROGRAMNAME4", "0")
$var9 = IniRead("memory.ini", "MEMORYSPARE", "SPARESIZE", "0")
if $var1 <> "" then
Local $list = ProcessList($var1)
for $i=1 to $list[0][0]
Local $aMemory = ProcessGetStats($list[$i][1])
$memory = $aMemory[0] /1048576
Local $memory2 = Int($memory)
if $memory > $var5 then
msgbox(0,"PID="& $list[$i][1] & "记忆体使用量", $list[$i][0] & "记忆体使用
量" & $memory2 & "MB",3)
EndIf
Next
EndIf
if $var2 <> "" then
Local $list = ProcessList($var2)
for $i=1 to $list[0][0]
Local $aMemory = ProcessGetStats($list[$i][1])
$memory = $aMemory[0] /1048576
Local $memory2 = Int($memory)
if $memory > $var6 then
msgbox(0,"PID="& $list[$i][1] & "记忆体使用量", $list[$i][0] & "记忆体使用
量" & $memory2 & "MB",3)
EndIf
Next
EndIf
if $var3 <> "" then
Local $list = ProcessList($var3)
for $i=1 to $list[0][0]
Local $aMemory = ProcessGetStats($list[$i][1])
$memory = $aMemory[0] /1048576
Local $memory2 = Int($memory)
if $memory > $var7 then
msgbox(0,"PID="& $list[$i][1] & "记忆体使用量", $list[$i][0] & "记忆体使用
量" & $memory2 & "MB",3)
EndIf
Next
EndIf
if $var4 <> "" then
Local $list = ProcessList($var4)
for $i=1 to $list[0][0]
Local $aMemory = ProcessGetStats($list[$i][1])
$memory = $aMemory[0] /1048576
Local $memory2 = Int($memory)
if $memory > $var8 then
msgbox(0,"PID="& $list[$i][1] & "记忆体使用量", $list[$i][0] & "记忆体使用
量" & $memory2 & "MB",3)
EndIf
Next
EndIf
Local $mem = MemGetStats()
Local $mem2 = int($mem[2]/1024)
if $mem2 < $var9 Then
MsgBox(0, "剩余记忆体", "可用记忆体剩余" & $mem2 & "MB",3)
EndIf
Exit
-----MEMORY.INI 档 使用记事本另存新档----
[PROGRAMNAME]
PROGRAMNAME1=IEXPLORE.EXE
PROGRAMNAME2=FIREFOX.EXE
PROGRAMNAME3=
PROGRAMNAME4=
[MEMORYSIZE]
PROGRAMNAME1=5
PROGRAMNAME2=10
PROGRAMNAME3=
PROGRAMNAME4=
[MEMORYSPARE]
SPARESIZE=500
---MEMORY.INI 档说明---
PROGRAMNAME 为要监控的程式名称,可由工作管理员看到完整程式档案名称
PROGRAMSIZE 为到达多少时跳出警告,单位MB 例如 IEXPLORE.EXE到5MB时跳出
告警,并於3秒内消失告警视窗
MEMORYSPARE 为系统记忆体少於多少时跳出告警,例如少於500MB 就告警
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 219.87.161.130
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/EzHotKey/M.1420598790.A.AC6.html