在Win32下枚举当前正在运行的进程的子进程的最佳方法是什么?我可以想到几种方法,但它们看起来过于复杂和缓慢。以下是解决方案的要求:
谢谢!
答案 0 :(得分:4)
您可以使用toolhelp API
#include <tlhelp32.h>
Process32First()
使用
循环Process32Next()
http://www.codeproject.com/KB/threads/processes.aspx
EDIT delphi
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;