Windows编程 - 遍历所有进程(exe) 代码(C++)

遍历所有进程(exe) 代码(C++)

本文地址: http://blog.csdn.net/caroline_wendy/article/details/29381987

遍历所有进程, 即任务管理器中所有的进程目录, 包含名称和进程ID.

返回字典: Key: 进程名字, Value: 进程ID.

代码:

/*
 * main.cpp
 *
 *  Created on: 2014.06.08
 *      Author: Spike
 */

/*vs 2012*/

#include <iostream>
#include <string>
#include <map>

#include <windows.h>
#include <TlHelp32.h>

using namespace std;

bool traverseProcesses(std::map<std::string, int>& _nameID)
{
	PROCESSENTRY32 pe32;
	pe32.dwSize = sizeof(pe32);

	HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
	if(hProcessSnap == INVALID_HANDLE_VALUE) {
		std::cout << "CreateToolhelp32Snapshot Error!" << std::endl;;
		return false;
	}

	BOOL bResult =Process32First(hProcessSnap, &pe32);

	int num(0);

	while(bResult)
	{
		std::string name = pe32.szExeFile;
		int id = pe32.th32ProcessID;

		std::cout << "[" << ++num << "] : " <<"Process Name:"
			<< name << "  " << "ProcessID:" << id<< std::endl;

		_nameID.insert(std::pair<string, int>(name, id)); //字典存储
		bResult = Process32Next(hProcessSnap,&pe32);
	}

	CloseHandle(hProcessSnap);

	return true;
}

int main()
{
	std::map<std::string, int> _nameID;

	if (!traverseProcesses(_nameID)) {
		cout << "Start Process Error!" << endl;
	}

	return 0;
}

输出:

Windows编程 - 遍历所有进程(exe) 代码(C++),布布扣,bubuko.com

时间: 2024-10-12 22:41:21

Windows编程 - 遍历所有进程(exe) 代码(C++)的相关文章

Windows编程 - 终止可执行(exe)程序 代码(C++)

终止可执行(exe)程序 代码(C++) 本文地址: http://blog.csdn.net/caroline_wendy 终止可执行(exe)程序, 首先遍历进程, 找到进程名称对于的进程ID号, 然后根据进程ID, 终止进程. 示例代码: 包括遍历进程代码, 和关闭代码. 代码: /* * main.cpp * * Created on: 2014.06.08 * Author: Spike */ /*vs 2012*/ #include <iostream> #include <

Windows编程 - 遍历程序使用的动态链接库(dll) 代码(C++)

遍历程序使用的动态链接库(dll) 代码(C++) 本文地址: http://blog.csdn.net/caroline_wendy 遍历程序使用的动态链接库(dll), 首先需要遍历所有进程, 匹配进程名称与进程ID, 然后根据进程名称, 输出所有使用的库(dll). 示例中Image.exe是预先启动的程序. 代码包含遍历进程的代码, 和输出动态链接库(dll)的代码. 代码: /* * main.cpp * * Created on: 2014.06.08 * Author: Spike

Windows编程 - 启动可执行(exe)程序 代码(C++)

启动可执行(exe)程序 代码(C++) 本文地址: http://blog.csdn.net/caroline_wendy 通过输入程序位置启动可执行(exe)程序, 使用windows的CreateProcess()函数, 即可. 示例是调用预先生产的可执行(exe)程序. 代码: /* * main.cpp * * Created on: 2014.06.08 * Author: Spike */ /*vs 2012*/ #include <iostream> #include <

Windows编程 - 开启/关闭/遍历程序的类 代码(C++)

开启/关闭/遍历程序的类 代码(C++) 本文地址: http://blog.csdn.net/caroline_wendy 类包含4个函数, 启动程序, 遍历所有进程, 关闭程序, 遍历进程依赖的动态链接库. 示例: Image.exe是预先生成的可执行程序(exe), 启动程序, 间隔5秒, 关闭程序. 使用方法参加测试程序. 代码: /* * process.h * * Created on: 2014.06.08 * Author: Spike */ /*vs 2012*/ #ifnde

走进windows编程的世界-----windows进程

Windows进程  1 Windows进程    进程是一个容器,包含了一个应用程序实例的各种资源.Windows多任务的操作系统,因此可以同时执行多个进程.      2 Windows进程的一些特点    2.1 进程中包含了执行代码等资源.    2.2 进程都具有私有的地址空间.    2.3 每个进程都有一个ID,标识进程.    2.4 每个进程都有自己的安全属性    2.5 至少要包含一个可以执行的线程.    二 进程的环境 1 环境信息的获取    获取:    LPVOI

C++windows内核编程笔记day13 进程、线程与信号量

Windows进程 进程是一个容器,包含程序执行需要的代码.数据.资源等信息, windows进程的特点: 每个进程都有自己的ID号 每个进程都有自己的地址空间,进程之间无法访问对方的地址空间. 每个进程都有自己的安全属性 每个进程至少包含一个线程. 获取和释放环境信息 GetEnvironmentStrings FreeEnvironmentStrings 获取或设置 本程序的环境变量 GetEnvironmentVariable SetEnvironmentVariable 示例: char

windows编程 进程的创建销毁和分析

Windows程序设计:进程进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动,在Windows编程环境下,主要由两大元素组成:? 一个是操作系统用来管理进程的内核对象.操作系统使用内核对象来存放关于进程的核心信息.? 另一个是地址空间,在地址空间囊括了所有可执行模块和动态链接库的代码和数据.动态内存分配的空间也在其中,典型代表是线程堆栈和堆内存分配.1进程与线程进程是不活泼的.当进程开始工作的时候,它必须启动一个在当前进程上下文中的线程来执行工作流程.这个线程被称为主线程,它负责执

windows编程之目录遍历

利用windows的API,FindFirstFile和FileNextFile,採用递归遍历指定目录中的全部文件及目录,第一次windows编程.代码写的非常臃肿难看.请大家多多包涵! #include<cstdio> #include<cstring> #include<iostream> #include<windows.h> #define MAXN 100005 using namespace std; void surf(WIN32_FIND_D

windows编程之文件夹遍历

利用windows的API,FindFirstFile和FileNextFile,采用递归遍历指定文件夹中的所有文件及文件夹,第一次windows编程,代码写的很臃肿难看,请大家多多包涵! <pre name="code" class="cpp">#include<cstdio> #include<cstring> #include<iostream> #include<windows.h> #define