用EnumProcesses()枚举进程
来源:互联网 发布:大数据可视化技术综述 编辑:程序博客网 时间:2024/06/10 04:02
转载自:http://blog.csdn.net/sunny_forever/article/details/7498034
ps:toolhelp函数在64位上貌似不行了
参照msdn的例子,用EnumProcesses()枚举进程并输入进程名和句柄。以下代码在vs2008中测试通过:
#include "stdafx.h"#include <windows.h>#include "psapi.h"#pragma comment (lib, "psapi.lib ") void MyEnumProcess(){// Get the list of process identifiers.DWORD aProcesses[1024], cbNeeded, cProcesses;unsigned int i;if ( !EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded ) ) //枚举进程return;cProcesses = cbNeeded / sizeof(DWORD); //计算进程个数for ( i = 0; i < cProcesses; i++ )if( aProcesses[i] != 0 ){TCHAR szProcessName[MAX_PATH] = TEXT("<unknown>");HANDLE hProcess = OpenProcess( PROCESS_QUERY_INFORMATION |PROCESS_VM_READ,FALSE, aProcesses[i] ); //获得进程句柄if (NULL != hProcess ){HMODULE hMod;DWORD cbNeeded;if ( EnumProcessModules( hProcess, &hMod, sizeof(hMod), &cbNeeded) ) //枚举进程模块信息{GetModuleBaseName( hProcess, hMod, szProcessName, sizeof(szProcessName)/sizeof(TCHAR) ); //取得主模块全名,每个进程第一模块则为进程主模块}}_tprintf( TEXT("%s (PID: %u)\n"), szProcessName, aProcesses[i] ); //输出进程名及PIDCloseHandle( hProcess );}}void main( ){ MyEnumProcess();system("pause");}
代码在我电脑上的运行结果如下图:
- 用EnumProcesses()枚举进程
- 用EnumProcesses()枚举进程
- 用EnumProcesses函数枚举进程
- EnumProcesses枚举系统中所有的进程 使用注意事项
- EnumProcesses
- 枚举进程(汇编)
- 用ZwQueryVirtualMemory枚举进程模块
- 用ZwQueryVirtualMemory枚举进程模块
- 用ZwQueryVirtualMemory枚举进程模块
- 用ZwQueryVirtualMemory枚举进程模块
- 用CreateToolhelp32Snapshot、Process32First、Process32Next枚举进程(BCB)
- 枚举进程
- 枚举进程
- 枚举进程
- 进程枚举
- 进程枚举
- 枚举进程
- 枚举进程
- 大话数据结构十二:字符串的模式匹配(BM算法)
- shell中的引号,单引号,反引号
- 【转】 由 serverAdd.sin_addr.s_addr 引发的思考
- Xcode学习笔记---如何使用Xcode中的storyboard构建你的第一个IOS应用
- 语言模型
- 用EnumProcesses()枚举进程
- live555简介
- Stc89c52存储空间大小问题
- LAMP开发环境搭建
- 二分查找算法整理
- Pig学习总结
- slabs 内存分配原理
- 自己动手修改宇宙无敌之Slickedit的文件切换标签栏
- UVA 10673 Play with Floor and Ceil