作者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/m.aspx?n=bbs/EzHotKey/M.1420598790.A.AC6.html