|
花了一天半时间做出来的,参考了 MSDN ,WIN32 API 说明,又上 CSDN 讨论,我记得以前哪位仁兄发过一个类似的 dll,但是下到我的机器上后不能用,因为需要 MFC 的某某dll,于是自己写了一个 dll (VC++6.0),没用 MFC ,直接调用 WINDOWS API 实现的,并在 winxp 和 win2003 下测试了一下,均 OK,本人编程菜鸟一个,高手勿笑,希望借此程序抛砖引玉,给大家提供一个自动化测试思路,如果你喜欢,可以在源代码上进行扩展,实现自己想要的功能,如果发现 bug,请通知我,谢谢
核心代码如下
**********************************************************
WINDLL_API int killprocess(char * processname)
{
HANDLE hSnapshot;
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 i=0;processInfo->szExeFile!='\0';i++)
{
if(processInfo->szExeFile!=processname)
eqflag=1;
}
//printf("%d\n",eqflag);
if(eqflag==0)
pid=processInfo->th32ProcessID;
flag=Process32Next(hSnapshot,processInfo);
}
CloseHandle(hSnapshot);
//printf("%d",pid);
if(pid==-1)
return 0;
HANDLE hProcess=OpenProcess(PROCESS_ALL_ACCESS,TRUE,pid);
//printf("%d",hProcess);
TerminateProcess(hProcess,0);
return 1;
}
***********************************************************
使用说明及 dll 见附件,如果此贴不沉,可能放上注释版源码 |
|