bool KillProcess(int Pid)
{
HANDLE hProcess;
DWORD dwPriorityClass;
//打开进程句柄
hProcess = OpenProcess (PROCESS_ALL_ACCESS,
FALSE, Pid);
if(hProcess == NULL)return false;
dwPriorityClass = GetPriorityClass (hProcess);
if(dwPriorityClass == 0)return false;
//if(!TerminateProcess(hProcess,0))return false;
if(!TerminateProcess(hProcess,1))return false;
CloseHandle (hProcess);
return true;
}
bool KillProcessAll(const char *proname)//
{
PROCESSENTRY32 pinfo;
pinfo.dwSize = sizeof(PROCESSENTRY32);
HANDLE hProcess = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if (hProcess == INVALID_HANDLE_VALUE)
return (FALSE);
BOOL report = Process32First(hProcess,&pinfo);
while(report)
{
report = Process32Next(hProcess, &pinfo);
if(stringcmp(proname,pinfo.szExeFile)&&pinfo.th32ProcessID!=0)
{
if(!KillProcess(pinfo.th32ProcessID))return false;
}
}
CloseHandle(hProcess);
return(true);
}
{
HANDLE hProcess;
DWORD dwPriorityClass;
//打开进程句柄
hProcess = OpenProcess (PROCESS_ALL_ACCESS,
FALSE, Pid);
if(hProcess == NULL)return false;
dwPriorityClass = GetPriorityClass (hProcess);
if(dwPriorityClass == 0)return false;
//if(!TerminateProcess(hProcess,0))return false;
if(!TerminateProcess(hProcess,1))return false;
CloseHandle (hProcess);
return true;
}
bool KillProcessAll(const char *proname)//
{
PROCESSENTRY32 pinfo;
pinfo.dwSize = sizeof(PROCESSENTRY32);
HANDLE hProcess = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if (hProcess == INVALID_HANDLE_VALUE)
return (FALSE);
BOOL report = Process32First(hProcess,&pinfo);
while(report)
{
report = Process32Next(hProcess, &pinfo);
if(stringcmp(proname,pinfo.szExeFile)&&pinfo.th32ProcessID!=0)
{
if(!KillProcess(pinfo.th32ProcessID))return false;
}
}
CloseHandle(hProcess);
return(true);
}