终止进程

参看文档,完全是自己写的哦

 

#include "Psapi.h"

//导入库Psapi.lib

 

DWORD GetPIDbyProcessName(CString strProcessName)

{

        TCHAR szProcessName[MAX_PATH] = _T("<unknown>");

        DWORD aProcesses[1024]={0}, cbNeeded, cProcesses;

 

        //枚举进程

        if (EnumProcesses(aProcesses,sizeof(aProcesses),&cbNeeded))

        {

                for (int i = 0; i < cbNeeded/sizeof(DWORD); i++)

                {

                        //打开进程

                        HANDLE hProcess = NULL;

                        hProcess = OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ,

                                FALSE,aProcesses[i]);

                        if (hProcess != NULL)

                        {

                                //枚举进程模块

                                HMODULE hMod = NULL;

                                DWORD dwNeeded = 0;

                                CString strName;

 

                                if(EnumProcessModules(hProcess,&hMod,sizeof(hMod),&dwNeeded))

                                {

                                        //获得名字

                                        if(GetModuleBaseName(hProcess,NULL,szProcessName,sizeof(szProcessName)/sizeof(TCHAR)))

                                        {

                                                TRACE(_T("%-20s %d/r/n"),szProcessName,aProcesses[i]);

                                                strName = szProcessName;

 

                                                strName.MakeUpper();

                                                strProcessName.MakeUpper();

                                                if (strName == strProcessName)

                                                        return aProcesses[i];

                                        }

                                }

 

 

                        }

                }

 

 

        }

 

}

 

BOOL KillProcessbyPID(DWORD pid)

{

        DWORD dwExitCode = 0;

 

        HANDLE hProcess = NULL;

        hProcess = OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ|

                PROCESS_TERMINATE ,

                                FALSE,pid);

        if(NULL != hProcess)

        {

                if(GetExitCodeProcess(hProcess,&dwExitCode))

                        return TerminateProcess(hProcess,dwExitCode);

                else

                        return TerminateProcess(hProcess,dwExitCode);

        }

 

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值