一段挂起进程中所有线程的代码

来源:互联网 发布:mac ps2017怎么破解 编辑:程序博客网 时间:2024/06/04 19:29

今天看书核心编程看到第7章,中的一段代码很有意思,win7下对记事本进程进行测试,可以挂起,挺有意思的

//windows核心编程 第5版中的一段代码/*函数功能:挂起进程中的所有线程参数1:进程ID参数2:若为TRUE时对进程中的所有线程调用SuspendThread,挂起线程      若为FALSE时对进程中的所有线程调用ResumeThread,恢复线程*/VOID SuspendProcess(DWORD dwProcessID, BOOL fSuspend){    HANDLE hSnapshot = CreateToolhelp32Snapshot(        TH32CS_SNAPTHREAD, dwProcessID);    if (hSnapshot != INVALID_HANDLE_VALUE) {        THREADENTRY32 te = {sizeof(te)};        BOOL fOk = Thread32First(hSnapshot, &te);        for (; fOk; fOk = Thread32Next(hSnapshot, &te)){            if (te.th32OwnerProcessID == dwProcessID) {                HANDLE hThread = OpenThread(THREAD_SUSPEND_RESUME,                    FALSE, te.th32ThreadID);                if (hThread != NULL) {                    if (fSuspend)                        SuspendThread(hThread);                    else                        ResumeThread(hThread);                }                CloseHandle(hThread);            }        }        CloseHandle(hSnapshot);    }}

0 0
原创粉丝点击