遍历进程,查找自己想要的进程

    相关函数名: 

            1.为指定的进程、进程使用的堆[HEAP]、模块[MODULE]、线程[THREAD])建立一个快照[snapshot]

HANDLE WINAPI CreateToolhelp32Snapshot
(
  __in  DWORD dwFlags,
  __in  DWORD th32ProcessID
);

2.进程获取函数,当我们利用函数CreateToolhelp32Snapshot()获得当前运行进程的快照后,我们可以利用process32First函数来

获得第一个进程的句柄.其原型为(用的是vfp)

BOOL WINAPI Process32First(
          __in     HANDLE hSnapshot,
  __inout  LPPROCESSENTRY32 lppe
);
查找指定进程的函数:

int GetProcessCount(const TCHAR* szExeName)
{
	TCHAR sztarget[MAX_PATH];
	lstrcpy(sztarget, szExeName);
	CharLowerBuff(sztarget, MAX_PATH);
	BOOL terminate = FALSE;
	HANDLE handlePro = NULL; 
	PROCESSENTRY32 my;
	HANDLE l = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
	if (((int)l) != -1)
	{
		my.dwSize = sizeof(my);
		if (Process32First(l, &my))
		{
			do
			{
				CharLowerBuff(my.szExeFile, MAX_PATH);
				if (lstrcmp(sztarget, my.szExeFile) == 0)
				{
					count++;
				}
			}while (Process32Next(l, &my));
		}
         CloseToolhelp32Snapshot(l);		
	}
	return count;
}

找到后count++,找不到返回。

值得指出的是,在wince下需要用 CloseToolhelp32Snapshot()去关闭句柄,而不是CloseHandle(),否则会产生内存泄露。

其他地方可以使用CloseHandle()关闭句柄.

 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值