Jump to content

How to get process mem byPID


Recommended Posts

:)

below is get process mem by name(WMI),and i want to know how to get it by PID??

Func _ProcessMem($ProcessName)
    Local $colItems = ""
    Local $strComputer = "localhost"

    Local $Output=""
    $Output = $Output & "Computer: " & $strComputer  & @CRLF
    Local $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
    Local $colItems =$objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = '" & $ProcessName& "'")
    For $objItem In $colItems 
        Local $mem=$objItem.WorkingSetSize /1024
        Return Int($mem)
    Next
EndFunc
Link to comment
Share on other sites

Func _ProcessMem_ByPID($ProcessID)
    Local $colItems = ""
    Local $strComputer = "localhost"

    Local $Output=""
    $Output = $Output & "Computer: " & $strComputer  & @CRLF
    Local $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
    Local $colItems =$objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE ProcessId = '" & $ProcessID& "'")
    For $objItem In $colItems
        Local $mem=$objItem.WorkingSetSize /1024
        Return Int($mem)
    Next
EndFunc

Win32_Process: http://msdn.microsoft.com/en-us/library/aa394372(VS.85).aspx

Link to comment
Share on other sites

ths iget it

$strComputer = "."

$objWMIService = ObjGet("winmgmts:" _

& "{impersonationLevel=impersonate}!\\" _

& $strComputer & "\root\cimv2")

$colProcesses = $objWMIService.ExecQuery _

("Select * from Win32_Process")

For $objProcess in $colProcesses

ConsoleWrite( "Process ID: " & $objProcess.ProcessID & @CRLF )

ConsoleWrite( "Working $Size: " _

& $objProcess.WorkingSetSize & @CRLF )

Next

Link to comment
Share on other sites

Oh, so you wanted PID by name?

Func _ProcessPID($ProcessName)
    Local $colItems = ""
    Local $strComputer = "localhost"

    Local $Output=""
    $Output = $Output & "Computer: " & $strComputer  & @CRLF
    Local $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
    Local $colItems =$objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = '" & $ProcessName& "'")
    For $objItem In $colItems
        Return Int($objItem.ProcessID)
    Next
EndFunc
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...