MFC 查找一个进程 打开进程 关闭进程

来源:互联网 发布:java多线程是多核吗 编辑:程序博客网 时间:2024/05/12 06:41

 

查找进程可以使用:CreateToolhelp32Snapshot和Process32First、Process32Next来遍历所有的进程,通过对比每一个进程的名字,就能得到自己想要的进程ID,有了进程ID,再使用OpenProcess打开对应进程ID的进程,然后使用CloseHandle函数关闭进程。

简单的查找步骤:

添加头文件

#include <tlhelp32.h>

//查找到进程,例如查找QQ

HANDLE hSnapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
 PROCESSENTRY32 pe32; 
 pe32.dwSize=sizeof(PROCESSENTRY32);
 BOOL bResult=Process32First(hSnapshot,&pe32);
 while(bResult) 
 { 


CString str=pe32.szExeFile; 

  if(str=="QQ.exe")
  {  
    AfxMessageBox("查找到QQ");
    break;
  } 
  else
  { 
   bResult=Process32Next(hSnapshot,&pe32);
  }
 }
 CloseHandle(hSnapshot);

//利用查找到的进程ID,打开进程:

HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,pe32.th32ProcessID);  

//关闭进程
 BOOL bRet = TerminateProcess(hProcess,0);