windows 下进程与线程的遍历
原文:http://www.cnblogs.com/Apersia/p/6579376.html
在Windows下进程与线程的遍历有好几种方法。
进程与线程的遍历可以使用<TlHelp.h>提供的几个函数来完成。
CreateToolHelp32Snapshot():
作用:为指定的进程,当然还有进程下的堆,模块和线程拍一个快照。
函数原型:
HANDLE WINAPI CreateToolhelp32Snapshot(
_In_ DWORD dwFlags,
_In_ DWORD th32ProcessID
);
参数:
dwFlags:
取决于你想拍什么快照,使用的参数不同,
TH32CS_SNAPPROCESS 进程快照
TH32CS_SNAPTHREAD 线程快照
TH32CS_SNAPMODULE 模块快照
|
1
2
3
4
|
BOOL WINAPI Process32First( _In_ HANDLE hSnapshot, _Inout_ LPPROCESSENTRY32 lppe); |
参数:
hSnapshot:
BOOL WINAPI Process32Next(
_In_ HANDLE hSnapshot,
_Out_ LPPROCESSENTRY32 lppe
);
参数:和Process32First参数相同。
实现代码:

//获取系统进程
#include <windows.h>
#include <TlHelp32.h> #include <iostream>
#include <map>
#include <string>
using namespace std; BOOL traverseProcess(std::map<std::string, int>&_nameID){ PROCESSENTRY32 pe32;
pe32.dwSize = sizeof(PROCESSENTRY32); HANDLE hProcessSnap;
hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if(hProcessSnap == INVALID_HANDLE_VALUE){
cout << "CreateToolhelp32Snapshot Error!" << endl;
return false;
} if(!Process32First(hProcessSnap, &pe32)){
cout << "Process32First Error!" << endl;
CloseHandle(hProcessSnap);
return false;
} int num = 0;
do{
string name = pe32.szExeFile;
int id = pe32.th32ProcessID; cout << "[" << ++num << "]:" << "Process Name = " << name << "------------"
<< "Process ID = " << id << endl; _nameID.insert(std::pair<string, int>(name, id)); }while(Process32Next(hProcessSnap, &pe32)); CloseHandle(hProcessSnap); return true; } int main(){
map<string, int> _nameID; if(!traverseProcess(_nameID)){
cout << "Start Process Error!" << endl;
} system("pause"); }

windows 下进程与线程的遍历的更多相关文章
- windows下进程与线程
windows下进程与线程 Windows是一个单用户多任务的操作系统,同一时间可有多个进程在执行.进程是应用程序的运行实例,可以理解为应用程序的一次动态执行:而线程是CPU调度的单位,是进程的一个执 ...
- windows下进程与线程剖析
进程与线程的解析 进程:一个正在运行的程序的实例,由两部分组成: 1.一个内核对象,操作系统用它来管理进程.内核对象也是系统保存进程统计信息的地方. 2.一个地址空间,其中包含所有可执行文件或DLL模 ...
- [笔记]linux下和windows下的 创建线程函数
linux下和windows下的 创建线程函数 #ifdef __GNUC__ //Linux #include <pthread.h> #define CreateThreadEx(ti ...
- windows 下进程池的操作
在Windows上创建进程是一件很容易的事,但是在管理上就不那么方便了,主要体现在下面几个方面: 1. 各个进程的地址空间是独立的,想要在进程间共享资源比较麻烦 2. 进程间可能相互依赖,在进程间需要 ...
- windows下进程间通信与线程间通信
进程间通信: 1.文件映射(Memory-Mapped Files) 文件映射(Memory-Mapped Files)能使进程把文件内容当作进程地址区间一块内存那样来对待.因此,进程不必使用文件I/ ...
- [转] linux 下 进程和线程的区别
1.进程与线程 进程是程序执行时的一个实例,即它是程序已经执行到课中程度的数据结构的汇集.从内核的观点看,进程的目的就是担当分配系统资源(CPU时间.内存等)的基本单位. 线程是进程的一个执行流,是C ...
- Linux下进程与线程的区别及查询方法
在平时工作中,经常会听到应用程序的进程和线程的概念,那么它们两个之间究竟有什么关系或不同呢?一.深入理解进程和线程的区别 1)两者概念 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进 ...
- 【windows下进程searchfilterhost.exe分析】
searchfilterhost.exe [进程信息] 进程文件: searchfilterhost.exe 进程名称: n/a 英文描述: searchfilterhost.exe is a pro ...
- linux 下 进程和线程的区别
1.进程与线程 进程是程序执行时的一个实例,即它是程序已经执行到课中程度的数据结构的汇集.从内核的观点看,进程的目的就是担当分配系统资源(CPU时间.内存等)的基本单位. 线程是进程的一个执行流,是C ...
随机推荐
- linux如何安装yum
yum全称Yellow dog Updater Modified,yum的主要用途是对rpm包进行管理,包括安装.卸载.升级等.linux安装yum也较为简单,具体如下: 工具/原料 1.电脑: 2. ...
- springMVC的一些入门配置
1.springMVC的描述 1.1.SpringMVC是Spring框架内置的MVC的实现.SpringMVC就是一个Spring内置的MVC子框架. 1.2.SpringMVC的作用是实现页面和后 ...
- 《大数据日知录》读书笔记-ch16机器学习:分布式算法
计算广告:逻辑回归 千次展示收益eCPM(Effective Cost Per Mille) eCPM= CTR * BidPrice 优化算法 训练数据使用:在线学习(online learning ...
- WebViewJavascriptBridge详细使用 iOS与H5交互的方案
WebViewJavascriptBridge详细使用 源网址: https://www.cnblogs.com/jiang-xiao-yan/p/5345755.html 前言 WebView ...
- (转)虚拟路由器冗余协议【原理篇】VRRP详解
原文:http://blog.51cto.com/zhaoyuqiang/1166840 为什么要使用VRRP技术 我们知道,为了实现不同子网之间的设备通信,需要配置路由.目前常用的指定路由方法有两种 ...
- unity接入安卓sdk (unity调用安卓工程)
1.安装jdk 并且配置环境,这个网上资料很多,这里不说了 2.安卓开发软件eclipse集成环境版 下载地址 http://tools.android-studio.org/index.php/ad ...
- ExtJs6自定义scss解决actionColum中iconCls图标不能调样式的问题
问题:图标样式不对,icon(本地图片)是对的,iconCls(引用的)样式不对 查ExtJs6的API里面说,可以用style添加样式,然而并没有作用 最后在该文件树下建立scss,最好和view文 ...
- view向全屏延伸时的属性设置
从iOS7 开始,当视图被navigationbar和tabbar包裹时,view默认会延伸到状态bar下面, 1.如果要让view贴着上下的状态bar展示,可以在viewDidLoad中设置属性 s ...
- NPOI excel文件解析
一.导入excel时要解析文件,我们直接用下面的帮助数来解析就可以了,开始是上使用该类的方法 private void ImportPlanPersonFromExcel(HttpContext co ...
- jQuery比较时间处理过程(日期转换为时间戳比较)
不管在JS中还是PHP中,终会遇到时间比较,但是很尴尬的是,举个例子,2017-04-12和2017-5-21是不一样或者说不能比较的,这在PHP和JS都是这种情况,这种情况怎么办呢,换成统一的格式比 ...