Windows系统工具帮助类API-CreateToolhelp32Snapshot
基本概念
CreateToolhelp32Snapshot是Windows系统中Tool Help Library(工具帮助库)提供的核心API函数,用于创建系统 “快照”(Snapshot)—— 即捕获系统中当前进程、线程、模块或堆的瞬时状态,以便后续枚举、查询这些系统对象的详细信息。
生成一个包含系统中指定类型对象(进程、线程、模块、堆)的 “快照” 句柄,通过该句柄可进一步枚举这些对象的详细信息。
基本语法
1 | HANDLE CreateToolhelp32Snapshot( |
dwFlags
快照类型,通过位或(|)组合指定需要捕获的对象,常用取值:
常量 含义 说明 TH32CS_SNAPPROCESS 进程快照 捕获系统中所有进程的信息 TH32CS_SNAPTHREAD 线程快照 捕获系统中所有线程的信息 TH32CS_SNAPMODULE 模块快照 捕获th32ProcessID指定进程加载的模块 TH32CS_SNAPHEAPLIST 堆列表快照 捕获th32ProcessID指定进程的堆信息 TH32CS_INHERIT 继承快照句柄 快照句柄可被子进程继承 TH32CS_SNAPALL 所有类型快照 等价于TH32CS_SNAPPROCESS、TH32CS_SNAPTHREAD、TH32CS_SNAPMODULE、TH32CS_SNAPHEAPLIST
th32ProcessID
当dwFlags包含TH32CS_SNAPMODULE或TH32CS_SNAPHEAPLIST时,需指定目标进程的ID(用于获取该进程的模块或堆);
其他情况(如进程、线程快照)设为0,表示捕获系统中所有相关对象。
返回值
成功:返回一个快照句柄(HANDLE),用于后续枚举操作(如Process32First)。
失败:返回INVALID_HANDLE_VALUE(宏定义为-1),可通过GetLastError()获取错误码。
简单示例
枚举系统中所有进程
1 |
|
