首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

怎么查找进程(没有窗口)的进程ID

2012-03-09 
如何查找进程(没有窗口)的进程ID在编程过程中,有时需要查找一些进程的进程ID。例如:我们知道Explorer.exe的

如何查找进程(没有窗口)的进程ID
在编程过程中,有时需要查找一些进程的进程ID。例如:我们知道Explorer.exe的窗口类是“Progman”,窗口名是“Program   Manager”,就可以通过FindWindow函数来先得到Explorer.exe的窗口句柄,再通过GetWindowThreadProcessId函数来得到Explorer.exe的进程ID。但是有些进程是没有窗口的(如:lsass.exe、winlogon.exe等进程),那么要该如何才能得到它的进程ID呢?

[解决办法]
FSnapshotHandle:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
//创建系统快照
FProcessEntry32.dwSize:=Sizeof(FProcessEntry32);
//先初始化 FProcessEntry32 的大小
Ret:=Process32First(FSnapshotHandle,FProcessEntry32);
while Ret do
begin
New(p);
p.ProcessID := FProcessEntry32.th32ProcessID;
p.filePath := FProcessEntry32.szExeFile;
p.ProcessName := UpperCase(ExtractFileName(p.filePath));
p.filePath := ' ';
proclist.Add(p);
Ret:=Process32Next(FSnapshotHandle,FProcessEntry32);
end;

[解决办法]
api in advapi

热点排行