进程遍历
来源:互联网 发布:mac 双系统丢失 编辑:程序博客网 时间:2024/06/10 20:36
对进程的遍历可以通过微软提供的Tool Help库来实现
里面的几个主要函数有
HANDLE WINAPI CreateToolhelp32Snapshot( _In_ DWORD dwFlags, _In_ DWORD th32ProcessID//0代表当前进程,);// 该函数用来获取当前进程的快照,通过flags来决定获取的内容,它的返回值将用于之后函数使用
BOOL WINAPI Process32First( _In_ HANDLE hSnapshot,//之前获取的句柄 _Inout_ LPPROCESSENTRY32 lppe);BOOL WINAPI Process32Next( _In_ HANDLE hSnapshot, _Out_ LPPROCESSENTRY32 lppe);//用上面的这两个函数可以对进程进行遍历typedef struct tagPROCESSENTRY32 { DWORD dwSize;//结构体大小 DWORD cntUsage;//不再使用,置0 DWORD th32ProcessID;//PID ULONG_PTR th32DefaultHeapID;//不再使用,置0 DWORD th32ModuleID;//不再使用,置0 DWORD cntThreads;//由进程开始执行线程的数目 DWORD th32ParentProcessID;//父进程ID LONG pcPriClassBase;//线程优先级 DWORD dwFlags;//不再使用,置0 TCHAR szExeFile[MAX_PATH];//进程可执行文件名} PROCESSENTRY32, *PPROCESSENTRY32;
简单实例
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);PROCESSENTRY32 pe = { 0 };pe.dwSize = sizeof(PROCESSENTRY32);if(hSnapshot != INVALID_HANDLE_VALUE && Process32First(hSnapshot, &pe)){ do { _tprintf(_T("ProcessName:%s\tParentID:%d\tThreads:%d\tPriClassBase:%d\n"), pe.szExeFile, pe.th32ParentProcessID, pe.cntThreads, pe.pcPriClassBase); }while(Process32Next(hSnapshot, &pe))}
之后可以通过进程的ID对线程和模块进行遍历
阅读全文
0 0
- 遍历进程
- 遍历进程
- 遍历进程
- 遍历进程
- 遍历进程
- 进程遍历
- 进程遍历
- 遍历进程、杀进程
- 遍历进程,结束进程
- 遍历进程 结束某个进程
- 进程遍历,根据进程名关闭进程
- 遍历进程Heap
- Linux进程遍历
- 内核级进程遍历
- 遍历进程和模块
- 遍历进程线程
- 内核模块遍历进程
- Pspcidtable遍历进程
- Handle & Inner Classes 如何避免内存泄漏
- Oracle数据库的start with ... connect by
- Codevs 1421:秋静叶&秋穣子——题解
- 关于安装完Myeclipse之后的一系列配置操作
- Android7.0中文文档(API) -- ActionMenuView.OnMenuItemClickListener
- 进程遍历
- liunx下cpu占用率高如何定位代码问题
- dflist0614
- 虚拟机无法联网
- 解决android 对话框 宽度被限定在 65%的问题及背景透明问题
- redis学习日志二(windows操作系统redis的安装和启动)
- PHP JSON方式封装通信接口
- nodejs之promise详解
- 标准c++中string类函数介绍<转>