void CMFCTestDlg::SuspentProcess(DWORD dwProcessID, bool fSuspend)
{
HANDLE hProcess = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, dwProcessID);
THREADENTRY32 te = { 0 };
te.dwSize = sizeof(te);
if (!hProcess)
{
BOOL bOK = Thread32First(hProcess, &te);
while (bOK)
{
bOK = Thread32Next(hProcess, &te);
if (te.th32OwnerProcessID == dwProcessID)
{
HANDLE hThread = OpenThread(THREAD_SUSPEND_RESUME, FALSE, te.th32ThreadID) ;
if (NULL != hThread)
{
if (fSuspend)
{
SuspendThread(hThread);
}
else
{
ResumeThread(hThread);
}
}
CloseHandle(hThread);
}
}
CloseHandle(hProcess);
}
}
挂起进程内所有线程
最新推荐文章于 2024-05-14 20:43:19 发布