Chi da tempo usa sistemi operativi costruiti sul kernel di
Windows NT avrà imparato a conoscere il
Task Manager. Il Task Manager è un Tool di Windows molto utile e abbastanza evoluto che non solo ci permette di elencare i processi caricati in un particolare momento in
RAM ma ci fornisce anche altre informazioni relative all'occupazione di memoria, uso di CPU, Handle aperti e così via.
Il Task Manager di Windows
Potrebbe nascere quindi la necessità di dover ricavare alcune informazioni contenute nel Task Manager ed utilizzarle nelle nostre applicazioni
.NET, per esempio appunto l'elenco dei processi attivi.
Il
Framework .NET è abbastanza vasto e dotato di classi che ci permettono di ricavare queste informazioni. Nel nostro esempio faremo riferimento alla classe
Process contenuta nel namespace
System.Diagnostic. Dopo aver quindi importato il namespace potremo scrivere questo codice:
VB.NETDim temp As Process()
temp = Process.GetProcesses()
Dim x As Integer
For x = 0 To temp.Length - 1
Console.WriteLine("Process: " + temp(x).ProcessName)
Next
C#Process[] temp=Process.GetProcesses();
for (int x=0;x<temp.Length;x++)
Console.WriteLine("Process: " + temp[x].ProcessName);
L'output prodotto da questi due frammenti di codice sarà il seguente:
Il programma in esecuzione
In questi cicli abbiamo solo stampato il
ProcessName, la classe
Process però espone molte altre proprietà dei processi, eccone alcune elencate:
- ID (il PID del processo)
- PagedMemorySize- PagedSystemMemorySize- VirtualMemorySize- Threads- HandleCount- PriorityClass- ecc.