暂停/恢复 某个进程的所有线程 :
void suspendProcess(DWORD pid, BOOL bSuspend)
{
HANDLE snap = CreateToolhelp32Snapshot( TH32CS_SNAPTHREAD, pid );
if(snap == INVALID_HANDLE_VALUE){
return;
}
THREADENTRY32 th32;
th32.dwSize = sizeof(THREADENTRY32);
if(!Thread32First (snap,&th32))
{
CloseHandle(snap);
return;
}
do
{
if(th32.th32OwnerProcessID == pid)
{
HANDLE hTh = OpenThread(THREAD_SUSPEND_RESUME,FALSE,th32.th32ThreadID);
if(hTh){
if(bSuspend)
SuspendThread(hTh);
else
ResumeThread(hTh);
}
CloseHandle(hTh);
}
}while(Thread32Next(snap,&th32));
CloseHandle(snap);
}