La seguente function consente di recuperare l'occupazione di memoria (in bytes) di un processo attivo sulla macchina locale o su di una macchina in rete.
I parametri in input sono:
MachineName = nome della macchina;
Processname = nome del processo.
La funzione restituisce MEMORY_EXCEPTION se la macchina remota non esiste, MEMORY_NOPROCESS se il processo non è attivo oppure lo spazio di memoria occupato dal processo (come intero a 64 bit).
Const MEMORY_EXCEPTION As Int64 = -2
Const MEMORY_NOPROCESS As Int64 = -1
Public Function GetProcessMemory(ByVal MachineName As String, ByVal ProcessName As String) As Int64
Dim oProcess As Process
Dim oProcesses As Process()
Try
If String.Compare(MachineName, "") = 0 Then
oProcesses = Process.GetProcesses()
Else
oProcesses = Process.GetProcesses(MachineName)
End If
For Each oProcess In oProcesses
If String.Compare(oProcess.ProcessName.ToLower(), ProcessName.ToLower()) = 0 Then
Return oProcess.WorkingSet
End If
Next
Catch
Return MEMORY_EXCEPTION
End Try
Return MEMORY_NOPROCESS
End Function