|
下午发布了一个功能不强的杀进程 DLL,具体链接如下
http://bbs.51testing.com/thread-65884-1-1.html
这个 DLL 只能终止一个进程,如果存在两个或多个同名进程,则无能为力,我稍微修改了一下源代码,制作了能杀多个同名进程的 DLL,用途也发现了,如果有多个同名窗口打开,而这多个窗口又对应多个同名进程,可以用此 DLL 关闭这些窗口和进程,不用再编代码了,新版 DLL 核心源代码如下,大家可以参照原版代码和新版本来理解如何进行自己的扩展,呵呵,开源就是有这点好处
*************************************************
WINDLL_API int killprocess(char * processname)
{
HANDLE hSnapshot,hProcess;
int flag;
int eqflag=0;
long int pid=-1;
hSnapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
PROCESSENTRY32* processInfo=new PROCESSENTRY32;
processInfo->dwSize=sizeof(PROCESSENTRY32);
flag=Process32First(hSnapshot,processInfo);
while(flag!=0)
{
eqflag=0;
for(int j=0;processInfo->szExeFile[j]!='\0';j++)
{
if(processInfo->szExeFile[j]!=processname[j])
eqflag=1;
}
//printf("%d\n",eqflag);
if(eqflag==0)
{
pid=processInfo->th32ProcessID;
hProcess=OpenProcess(PROCESS_ALL_ACCESS,TRUE,pid);
TerminateProcess(hProcess,0);
}
flag=Process32Next(hSnapshot,processInfo);
}
CloseHandle(hSnapshot);
//printf("%d",pid);
if(pid==-1)
return 0;
//printf("%d",hProcess);
return 1;
}
*********************************************************
新版 DLL 见附件 |
|