C++遍历所有进程

对于桌面开发而言,有时候我们需要查找某个进程,启动或者终止它,更或者进行进程守护,一旦进程终止,则重新启动。

这样以来,首先我们需要遍历所有进程。

DWORD aProcesses[ 1024 ];
DWORD cProcesses = GetProcessIDs( aProcesses, sizeof( aProcesses ) );
CString sName;
for( DWORD idx = 0; idx < cProcesses; idx++ ){
   sName = GetProcessBaseModuleName( aProcesses[ idx ] );
   if( sName.IsEmpty() ){
   continue;
   }
   //做一些操作
}

我们通过GetProcessIDs来获取所有的进程ID,同时通过GetProcessBaseModuleName来获取进程名称。

记住,在64位的机器上,如果是32位的程序遍历进程,那么你将只能得到32位进程的名称等信息,64位的将无法得到。

见我的另外一篇文章:EnumProcessModules失败的问题

发表评论

电子邮件地址不会被公开。