Obtener la lista de procesos ejecutándose
Con ésté trozo de código se puede obtener la lista de los procesos (nombre del ejecutable) que están en marcha en ese momento en la máquina:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | var i: Integer; bContinue: BOOL; begin // Limpiar la lista ListBox1.Items.Clear; // Recoge la lista de procesos en éste momento aSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); aProcessEntry32.dwSize := SizeOf(aProcessEntry32); // Acceder al primer proceso bContinue := Process32First(aSnapshotHandle, aProcessEntry32); // Recorerr los procesos activos while (Integer(bContinue) <> 0) do begin // Añadirlo a la lista ListBox1.Items.Add(ExtractFileName(aProcessEntry32.szExeFile)); // Hay más? bContinue := Process32Next(aSnapshotHandle, aProcessEntry32); end; // cerrar la estructura CloseHandle(aSnapshotHandle); |
Utilizando aProcessEntry32 se puede obtener más información de cada uno de los procesos, como:
* Identificador
* Nombre competo
* …
IntToHex(aProcessEntry32.th32ProcessID, 4)
aProcessEntry32.szExeFile
Embarcadero MVP.
Analista y Programador de Sistemas Informáticos.
Estudios de Informática (Ingeniería Técnica Superior) en la UPC (Universidad Politécnica de Barcelona).
Llevo utilizando Delphi desde su versión 3. Especialista en diseño de componentes, Bases de Datos, Frameworks de Persistencia, Integración Continua, Desarrollo móvil,…
Gracias muy útil.