为什么这个程序每次只能结束一条进程,如果我打开多个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)
顺便说一句,上次的帖子你都没结……