结束指定进程名对应的进程

通过进程id结束进程很简单,通过进程名去结束进程稍微麻烦点。有些代码其实就是通用的,每次都要上网找半天,

以后要将常用代码整理起来才好。

以下是该函数:

 

ContractedBlock.gif ExpandedBlockStart.gif Code
 1 BOOLEAN Kill(char* pName){
 2     DWORD   aProcesses[1024],dwSize,dwSize2;    
 3     char   szProcessName[MAX_PATH]={0};
 4     DWORD Pid=0;
 5     unsigned int i;    
 6     if (!EnumProcesses(aProcesses,sizeof(aProcesses),&dwSize))  {  
 7         return    FALSE;    
 8     }
 9     dwSize2=dwSize/sizeof(DWORD);    
10     for (i=0;i<dwSize2;i++
11     {    
12         HANDLE   hProcess   =   OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,
13             FALSE,
14             aProcesses[i]);     
15         if   (hProcess)    
16          {    
17             HMODULE   hMod;    
18             DWORD   dwSize;    
19             if   (EnumProcessModules(hProcess,&hMod,sizeof(hMod),&dwSize)){
20                  GetModuleBaseName(hProcess,hMod,szProcessName,sizeof(szProcessName));
21             }
22             if   (strcmp(szProcessName,pName)==0)  
23             {  
24                 Pid=aProcesses[i];
25                 CloseHandle(hProcess);   
26                 break;
27             }  
28         }    
29         CloseHandle(hProcess);    
30     }
31     HANDLE hProcess   =   OpenProcess(PROCESS_ALL_ACCESS,FALSE,Pid);  
32     if(NULL!=hProcess)  
33     {  
34         TerminateProcess(hProcess,   0);  
35     }  
36     CloseHandle(hProcess);   
37     return TRUE;
38 }
39 

因为使用了psapi库,所以前面需要include <psapi.h> 以及

#pragma comment(lib, "psapi.lib")

VC6里面没有自带psapi库,可以通过这里下载: psapi下载

调用方式就是Kill("notepad.exe");

这样就结束了notepad.exe 进程

 

 

 

转载于:https://www.cnblogs.com/jokerfox/archive/2009/05/13/1456292.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值