首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

为什么这个程序每次只能结束一条进程,如果小弟我打开多个IE,想把它们全部结束,应该如何改

2012-03-17 
为什么这个程序每次只能结束一条进程,如果我打开多个IE,想把它们全部结束,应该怎么改?#includewindows.h

为什么这个程序每次只能结束一条进程,如果我打开多个IE,想把它们全部结束,应该怎么改?
#include   <windows.h>
#include   <tlhelp32.h>
#include   <stdio.h>
#include   <string.h>

#include <stdio.h>
#include <windows.h>
#include <tlhelp32.h>
HWND   find();
void   main()
{
HWND   hChildPro   =   find();
if(hChildPro   !=   NULL)
TerminateProcess(hChildPro,NULL);
}

HWND   find()
{
HWND   hProcess;
DWORD   th32ProID   =   NULL;
bool   found   =   false;
HANDLE   SnapShot   =   CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);

if(SnapShot   ==   INVALID_HANDLE_VALUE)
return   0;

PROCESSENTRY32   ProcessInfo;
ProcessInfo.dwSize   =   sizeof(ProcessInfo);

BOOL   Status   =   Process32First(SnapShot,&ProcessInfo);

while(Status)
{
if(strstr(ProcessInfo.szExeFile, "notepad.exe ")   !=   NULL)
{
found   =   true;
th32ProID   =   ProcessInfo.th32ProcessID;
hProcess   =   (HWND)OpenProcess(PROCESS_ALL_ACCESS,0,ProcessInfo.th32ProcessID);
break;
}
Status   =   Process32Next(SnapShot,&ProcessInfo);
}
CloseHandle(SnapShot);
return   (HWND)hProcess;
}




[解决办法]
这个帖子也是楼主你的吧:http://community.csdn.net/Expert/topic/5730/5730970.xml?temp=.8361322
按那个帖子的来就ok的了……

你这个程序,你关闭的是find返回的那个进程,而find只能返回一个进程,当然就只能关闭一个了……
把if(hChildPro != NULL)改成while(hChildPro != NULL)

顺便说一句,上次的帖子你都没结……

热点排行