zoukankan      html  css  js  c++  java
  • 一段挂起进程中所有线程的代码

    今天看书核心编程看到第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);
        }
    }
       
  • 相关阅读:
    defer与async的区别
    Promise 的含义
    SCSS 与 Sass 异同
    CSS总结2
    CSS总结1
    jQuery-插件,优化
    jQuery-表格以及表单
    jQuery-事件以及动画
    jQuery-ajax
    jQuery-DOM操作
  • 原文地址:https://www.cnblogs.com/zero5/p/3604029.html
Copyright © 2011-2022 走看看