- 注册时间
- 2021-4-16
- 最后登录
- 2023-11-9
- 在线时间
- 4 小时
编程入门
- 龙马币
- 108
|
主要使用的下面几个函数:
1、CreateToolhelp32Snapshot
2、Thread32First
3、Thread32Next
所以要引用下面的头文件:
#include <tlhelp32.h>
枚举线程的代码如下:
- // 枚举系统当前所有线程信息
- // 并把信息输出到工程目录下EnumInfo_thread.txt
- BOOL EnumThreadInfo ()
- {
- // 定义线程信息结构
- THREADENTRY32 te32 = {sizeof(THREADENTRY32)} ;
-
- //创建系统线程快照
- HANDLE hThreadSnap = CreateToolhelp32Snapshot ( TH32CS_SNAPTHREAD, 0 ) ;
- if ( hThreadSnap == INVALID_HANDLE_VALUE )
- return FALSE ;
-
- // 输出线程信息到文件
- ofstream fout ( "EnumInfo_thread.txt" ) ;
-
- // 循环枚举线程信息
- if ( Thread32First ( hThreadSnap, &te32 ) )
- {
- do{
- fout << "ThreadId : " << te32.th32ThreadID << endl ;
- fout << '\t' << "OwnerProcessID : " << te32.th32OwnerProcessID << endl ;
- fout << '\t' << "Usage : " << te32.cntUsage << endl ;
- fout << '\t' << "Delta Priority : " << te32.tpDeltaPri << endl ;
- fout << '\t' << "Base Priority : " << te32.tpBasePri << endl ;
- }while ( Thread32Next ( hThreadSnap, &te32 ) ) ;
- }
- fout.close () ;
- CloseHandle ( hThreadSnap ) ;
- return TRUE ;
- }
复制代码
|
|