关闭

MFC获得指定进程的ID,路径及终止进程

2991人阅读 评论(0) 收藏 举报
分类:

转载自:http://blog.sina.com.cn/s/blog_a473b7dc0101foir.html

头文件#include"tlhelp32.h"

voidManagerDlg::OnBnClickedOk()

{

DWORD procID=this->GetProcessidFromName(L"qq.exe",LLNPath);

if(procID>0)

{

HANDLE handle=OpenProcess(PROCESS_TERMINATE,FALSE,procID);

BOOL ret=TerminateProcess(handle,4);//这里必须是4,否则无法结束进程

if(ret==0)

{

AfxMessageBox(L"can't Terminate the Specifize Process");

return;

}

}

}


DWORDManagerDlg::GetProcessidFromName(CString processName,CString &processPath)

{

PROCESSENTRY32 pe;

MODULEENTRY32 me;

DWORD id=0;

HANDLE mehandle;

HANDLE hSnapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);

pe.dwSize=sizeof(PROCESSENTRY32);

BOOL ret=Process32First( hSnapshot,&pe);

if(!ret)

return0;

while(1)

{

pe.dwSize=sizeof(PROCESSENTRY32);

if(Process32Next(hSnapshot,&pe)==FALSE)

break;

if(processName.CompareNoCase(pe.szExeFile)==0)

{

id=pe.th32ProcessID;

//获取当前进程所在路径

mehandle=CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,id);

me.dwSize=sizeof(MODULEENTRY32);

Module32First(mehandle,&me);

processPath=me.szExePath;

break;

}

}

CloseHandle(hSnapshot);

returnid;


}

 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:150676次
    • 积分:2357
    • 等级:
    • 排名:第15848名
    • 原创:75篇
    • 转载:61篇
    • 译文:0篇
    • 评论:7条