在Win32下枚举当前正在运行的进程的subprocess的最好方法是什么? 我可以想到一些方法来做到这一点,但他们似乎过于复杂和缓慢。 以下是解决scheme的要求:
谢谢!
你可以使用toolhelp API
#include <tlhelp32.h> Process32First()
并循环使用
Process32Next()
http://www.codeproject.com/KB/threads/processes.aspx
编辑德尔福
uses tlhelp32; procedure FillAppList(Applist: Tstrings); var Snap:THandle; ProcessE:TProcessEntry32; begin Applist.Clear; Snap:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); ProcessE.dwSize:=SizeOf(ProcessE); if Process32First(Snap,ProcessE) then begin Applist.Add(string(ProcessE.szExeFile)); while Process32Next(Snap,ProcessE) do .. compare parent id end CloseHandle(Snap); end;