#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;
}
原文链接: https://www.cnblogs.com/dailycode/p/12459503.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;
也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/334519
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!