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. |