#include Psapi.h#include vectorBOOL TraversalProcess2(OUT std::vectorDWORD vec){vec.clear();try{BYTE *pbt = 0;DWORD dwSize = 0, dw = 0x1000;BOOL b = 0;for (; dw INT_MAX !b; dw *= 2){if ...

#include <Psapi.h>
#include <vector>
BOOL TraversalProcess2(OUT std::vector<DWORD> &vec)
{
vec.clear();
try
{
BYTE *pbt = 0;
DWORD dwSize = 0, dw = 0x1000;
BOOL b = 0;
for (; dw < INT_MAX && !b; dw *= 2)
{
if (pbt)
{
delete pbt;
pbt = 0;
}
pbt = new BYTE[dw];
if (pbt)
{
b = EnumProcesses((DWORD*)pbt, dw, &dwSize);
}
}
if (pbt && b)
{
DWORD *pdw = (DWORD*)pbt;
for (DWORD i = 0; i < dwSize / sizeof(DWORD); ++i)
{
vec.push_back(pdw[i]);
}
delete pbt;
pbt = 0;
}
}
catch (...)
{
OutputDebugStringA(__FUNCTION__);
return 0;
}
return vec.size() > 0;
}
int main()
{
std::vector<DWORD> vec;
std::cout << TraversalProcess2(vec) << endl;
for each (DWORD var in vec)
{
printf("%d\t", var);
printf("\r\n");
}
return 0;
}
沃梦达教程
本文标题为:C++.进程2


基础教程推荐
猜你喜欢
- C语言文件操作与相关函数介绍 2023-06-13
- C语言预编译#define(预处理) 2023-04-03
- C++高级数据结构之并查集 2023-04-20
- C语言实现简易停车场管理系统 2023-03-13
- 如何告诉 MinGW 链接器不要导出所有符号? 2022-10-07
- 漫画讲解C语言中最近公共祖先的三种类型 2023-01-01
- C++类和对象到底是什么 2022-11-12
- 使用C/C++读写.mat文件的方法详解 2023-03-05
- 使用VS2022开发在线远程编译部署的C++程序(图文详解) 2023-01-15
- C/C++ Qt StatusBar底部状态栏应用教程 2023-01-10