加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

Windows API一日一练 88 EnumProcesses函数

发布时间:2020-12-14 02:34:20 所属栏目:Windows 来源:网络整理
导读:? 当你开发的软件在用户那里运行出错了,想怎么办呢?当然是希望把出错时候的运行环境信息生成报表,然后再 Email 回来查看了。这里就介绍一个函数可以把当时运行环境的进程全部找到,然后可以输出每个进程的信息。当然,这个函数也可以使用到杀病毒软件里,
?
当你开发的软件在用户那里运行出错了,想怎么办呢?当然是希望把出错时候的运行环境信息生成报表,然后再 Email 回来查看了。这里就介绍一个函数可以把当时运行环境的进程全部找到,然后可以输出每个进程的信息。当然,这个函数也可以使用到杀病毒软件里,用来查看可疑的进程信息。
?
函数 EnumProcesses 声明如下:
?
BOOL
WINAPI
EnumProcesses (
??? DWORD * lpidProcess,
??? DWORD?? cb,
??? DWORD * cbNeeded
??? );
lpidProcess 是保存进程 ID 的数组。
cb 是进程组数的大小。
cbNeeded 是返回进程数组的大小。
?
调用函数的例子如下:
#001?// 获取系统所有进程。
#002??// 蔡军生 ?2007/12/12 QQ:9073204 深圳
#003??void TestEnumProcesses(void)
#004??{
#005???????? //
#006???????? const int nBufSize = 512;
#007???????? TCHAR chBuf[nBufSize];
#008???????? ZeroMemory(chBuf,nBufSize);
#009?
#010???????? //
#011???????? DWORD dwProcs[1024*2];
#012???????? DWORD dwNeeded;
#013?
#014???????? // 枚举所有进程 ID
#015??????? if ( !EnumProcesses( dwProcs,sizeof(dwProcs),&dwNeeded ) )
#016???????? {
#017?????????????? // 输出出错信息。
#018?????????????? wsprintf(chBuf,_T("EnumProcesses failed (%d)./n"),GetLastError() );
#019?????????????? OutputDebugString(chBuf);
#020?
#021?????????????? return;
#022???????? }???
#023?
#024???????? // 计算有多少个进程 ID
#025???????? DWORD dwProcCount = dwNeeded / sizeof(DWORD);
#026????????
#027???????? wsprintf(chBuf,_T("EnumProcesses Count(%d)./n"),dwProcCount );
#028???????? OutputDebugString(chBuf);
#029?
#030??}
#031?
?

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读