Dim lvItem As Integer = 0
For Each p As System.Diagnostics.Process In System.Diagnostics.Process.GetProcesses()
Using p
Dim at AccessToken = AccessTokenProcess.TryOpenToken(p.Id, TokenAccessType.TOKEN_QUERY)
Using at
Dim pi ProcessItem = new ProcessItem(p)
Dim item ListViewItem = listView1.Items.Add(p.ProcessName)
item.Tag = pi
If ((selItem Is Not Nothing) AndAlso (pi.Equals(selItem))) Then
item.Selected = true
End if
' PID
item.SubItems.Add(p.Id.ToString())
' User Name
item.SubItems.Add(IIF(at IsNot Nothing, at.User.CanonicalName, ""))
' Session ID
item.SubItems.Add(IIF(at IsNot Nothing, at.TerminalServicesSessionId.ToString(), ""))
' Working set
item.SubItems.Add(string.Format("{0} K", (p.WorkingSet + 1023)/ 1024))
' VM Size
'item.SubItems.Add(string.Format("{0} K", (p.VirtualMemorySize + 1023)/ 1024))
' Thread count
item.SubItems.Add(string.Format("{0}", p.Threads.Count))
' Handle count
item.SubItems.Add(string.Format("{0}", p.HandleCount))
End Using 'at
End Using 'p
lvItem++
Next p