Private progArr
Private Const Programs = "miragebot"

'// Based on MemCheck for StealthBot by AwaKening

Sub Script(Name, Major, Minor, Build, Author, Commands, Description)
	Name = "MemCheck Script"
	Major = 1
	Minor = 0
	Build = 0
	Author = "Chriso"
	Commands = "memcheck"
	Description = "Request memory usage for a list of programs."
End Sub

Sub Event_Load()
	CreateCommand "memcheck", "MemCheck", "Command_MemCheck", "", "[list]", "Request memory usage for a list of programs (either internal or spoken).", 0, True
	progArr = Split(Programs, ", ")
End Sub

Sub Command_MemCheck(CS)
	Dim objService, colProcess, Process
	Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!//./Root/Cimv2")
	Set colProcess = objService.ExecQuery("SELECT * FROM Win32_Process")
	For Each Process in colProcess
		'// Check internal list
		If Len(CS.Message) = 0 Then
			For i = 0 to UBound(progArr)
				If InStr(1, Process.Name, progArr(i), 1) > 0 Then
					CS.Reply Process.Name & " | " & Round(Process.WorkingSetSize/1024/1000, 1) & "mb"
				End If
			Next
		Else
		'// Check spoken list
			Dim spokeArr
			spokeArr = Split(CS.Message, ", ")
			For i = 0 To Ubound(spokeArr)
				If InStr(1, Process.Name, spokeArr(i), 1) > 0 Then
					CS.Reply Process.Name & " | " & Round(Process.WorkingSetSize/1024/1000, 1) & "mb"
				End If
			Next
		End If
	Next
	Set objService = Nothing
	Set colProcess = Nothing
End Sub