Windows - Lista Processi Attivi Windows




Api # Ottenere la lista dei processi attivi sotto Win95

Ottenere la lista dei processi attivi
Grazie alle funzioni TOOLHELP presenti nella libreria kernel32.dll di Windows95, e' possibile 'fotografare' la lista dei processi attivi in un determinato momento e quindi sapere quali programmi sono in esecuzione. La funzione per creare tale 'snapshot' e' la seguente:
Declare Function CreateToolhelp32Snapshot Lib "kernel32" _
(ByVal dwFlags As Long, ByVal dwProcessID As Long) As Long
Lo snapshot restituisce un'array contenente, per ogni processo attivo, una struttura dati PROCESSENTRY32 la cui definizione e' la seguente
Type PROCESSENTRY32
dwSize As Long 'Dimensione della struttura
cntUsage As Long 'Numero di riferimento del processo
th32ProcessID As Long 'ID del processo
th32DefaultHeapID As Long 'ID dell'Heap del processo
th32ModuleID As Long 'ID del modulo del processo
cntThreads As Long 'Numero di Thread lanciati dal processo
th32ParentProcessID As Long 'ID del processo Parent
pcPriClassBase As Long 'Priorita' di base dei Tread lanciati dal processo
szExeFile As String * 260 'Nome completo del path dell'eseguibile
dwFlags As Long
End Type
I valori piu' importanti di questa struttura sono il th32ProcessID che ci restituisce il numero univoco di processo, e il campo szExeFile che contiene il nome dell'eseguibile completo del path. Ottenuto quindi lo snapshot basta scorrerlo dall'inizio alla fine utilizzando altre due funzioni le cui dichiarazioni sono:
Declare Function Process32First Lib "kernel32" _
(ByVal hObject As Long, p As PROCESSENTRY32) As Boolean
Declare Function Process32Next Lib "kernel32" _
(ByVal hObject As Long, p As PROCESSENTRY32) As Boolean
La prima restituisce il primo processo della lista, e la seconda scorre l'array dei processi fino alla fine della lista. Bastera' quindi scorrere tutta la lista
finche' il valore di ritorno della funzione Process32Next e' diverso da 0 ed ottenere tramite il campo szExeFile tutti i nomi, completi del path, dei
processi In esecuzione.
Per meglio compredere l'uso di queste funzioni, scaricare il file tool.zip nel quale e' presente un'esempio di utilizzo di quest funzioni.(L'esempio e' creato
con VB5).
Scarica l'esempio (tool.zip) in puro codice Visual Basic
E' possibile scaricare anche altri esempi, sempre creati in VB, dove vengono utilizzate le classi (classi.zip) e una DLL ActiveX (activex.zip) completa di
sorgenti, per l'utilizzo delle librerie ToolHelp32, elaborati entrambi da Roberto Bragaglia.










( windowslistaprocessiattiviwindows.html )- by Paolo Puglisi - Modifica del 17/12/2023