根據進程名或者ID稱關閉進程

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);
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章