zoukankan      html  css  js  c++  java
  • 获取指定程序的所有线程ID号

    HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
      PROCESSENTRY32 pe = { sizeof(pe) };
      BOOL fOk;
      for (fOk = Process32First(hSnapshot, &pe); fOk; fOk = Process32Next(hSnapshot, &pe))
      {  
       if (!_tcscmp(pe.szExeFile, L"VCdemo.exe"))
       {
        
         if(bNoPrint == FALSE&&RefreshThreadList(pe.th32ProcessID))
         {
                         bNoPrint = TRUE;
          TRACE("VCdemo.exe ProcessID :0x%X ",pe.th32ProcessID);
         }
       }

    BOOL RefreshThreadList (DWORD dwOwnerPID)
    {
     HANDLE        hThreadSnap = NULL;
     BOOL          bRet        = FALSE;
     THREADENTRY32 te32        = {0};

     // Take a snapshot of all threads currently in the system.

     hThreadSnap = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0);
     if (hThreadSnap == INVALID_HANDLE_VALUE)
      return (FALSE);

     // Fill in the size of the structure before using it.

     te32.dwSize = sizeof(THREADENTRY32);

     // Walk the thread snapshot to find all threads of the process.
     // If the thread belongs to the process, add its information
     // to the display list.

     if (Thread32First(hThreadSnap, &te32))
     {
      do
      {
       if (te32.th32OwnerProcessID == dwOwnerPID)
       {
        /*printf( " TID %d ", te32.th32ThreadID);
        printf( "Owner PID %d ", te32.th32OwnerProcessID);
        printf( "Delta Priority %d ", te32.tpDeltaPri);
        printf( "Base Priority %d ", te32.tpBasePri); */
        TRACE("VCdemo.exe nTID :0x%X ",te32.th32ThreadID);
        TRACE("VCdemo.exe Owner PID :0x%X ",te32.th32OwnerProcessID);
        //TRACE("VCdemo.exe Delta Priority :0x%X ",te32.tpDeltaPri);
        //TRACE("VCdemo.exe Base Priority :0x%X ",te32.tpBasePri);

       }
      }
      while (Thread32Next(hThreadSnap, &te32));
      bRet = TRUE;
     }
     else
      bRet = FALSE;          // could not walk the list of threads

     // Do not forget to clean up the snapshot object.

     CloseHandle (hThreadSnap);

     return (bRet);
    }

  • 相关阅读:
    install jprofiler for ubuntu
    android manifest相关属性
    install nginx for ubuntu
    Android shape
    mobile web for no cookie session
    Android布局属性
    什么是强类型,强类型集合
    radl (三) (转)
    几个.net 基础问题,自己回答了一些,请大家指教
    c#接口和抽象类的区别
  • 原文地址:https://www.cnblogs.com/liuliu-NoGirl/p/3341121.html
Copyright © 2011-2022 走看看