ToolHelp32_EnumThread

#include <windows.h>
#include <tlhelp32.h>
#include <stdio.h>

BOOL EnumThreadList ();
int main()
{
    EnumThreadList();


    return 0;
}
BOOL EnumThreadList () 
{ 
    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 
        { 
            printf( "\nTID\t\t%d\n", te32.th32ThreadID); 
            printf( "Owner PID\t%d\n", te32.th32OwnerProcessID); 
            printf( "Delta Priority\t%d\n", te32.tpDeltaPri); 
            printf( "Base Priority\t%d\n", 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); 
} 

 

posted on 2013-03-05 20:43  All IN  阅读(274)  评论(0)    收藏  举报

导航