PDA

Ver la Versión Completa : Recibir TProcessInformation de PID?


Reasen
11-03-2016, 05:02:36
Buenas queria hacer una funcion para recibir informacion de los procesos como por ejemplo los handles de los thread corriendo pero no encuentro una manera factible.

Encontre algo como esto pero seria creando el proceso, me interesaria recibirla de uno ya creado por el PID a ser posible, no tengo las cosas muy claras con estas apis, una mano me vendria genial :D

CreateProcess(PChar(ProcessName), PChar(Parameters), NIL, NIL, False, CREATE_NEW, NIL, NIL, StartupInfo, ProcessInfo))

Neftali [Germán.Estévez]
11-03-2016, 09:10:01
Puedes obtener toda esta información a partir de WMI.
La clase Win32_process (https://msdn.microsoft.com/en-us/library/windows/desktop/aa394372(v=vs.85).aspx) te da información de procesos en marcha.

Para cada proceso puedes obtener, toda la información incluyendo Caption, Name, Handle, Handlecount, ThreadCount,... (que son los que pueden interesarte).
A partir de esto puedes utilizar la clase Win32_Threads (https://msdn.microsoft.com/en-us/library/windows/desktop/aa394494(v=vs.85).aspx) que te devolverá toda la información de los threads en marcha en el sistema y que puedes filtrar a partir del ProcessHandle (proceso al que pertenecen).

De esta forma primero buscas el Handle de un proceso y luego los threads que pertenecen a ese proceso.

Te puede facilitar el trabajo la librería GLibWMI (http://neftali.clubdelphi.com/?p=3612) que incluye un componente en el que puedes lanzar consultas.

Reasen
11-03-2016, 11:31:46
Justo la documentación que andaba buscando, se agradece!