枚举进程的具体详细的代码

新手上路,想知道c++的枚举电脑进程的具体代码是什么,分别要建立几个源文件和头文件。

C++,啥系统呢?C++ 不具备这样的功能,一般是系统提供的 API 才有这样的功能。
如果是 Windows 平台,可以考虑:
如何用 Win32 APIs 枚举应用程序窗口和进程

四种方法实现VC枚举系统当前进程

Windows上有api,Process32Frist Process32Next

主要使用的下面几个函数:

1、CreateToolhelp32Snapshot

2、Process32First

3、Process32Next

所以要引用下面的头文件:

[cpp] view plaincopyprint?
#include

枚举进程的代码如下:

[cpp] view plaincopyprint?
// 枚举系统当前所有进程信息

// 并把信息输出到工程目录下EnumInfo_ToolHelp_process.txt

BOOL EnumProcessInfo()

{

// 定义进程信息结构

PROCESSENTRY32 pe32 = {sizeof(pe32)} ;

// 创建系统当前进程快照  
HANDLE hProcessShot = CreateToolhelp32Snapshot ( TH32CS_SNAPPROCESS, 0 ) ;  
if ( hProcessShot == INVALID_HANDLE_VALUE )  
    return FALSE ;  

// 输出进程信息到文件  
ofstream fout ( "EnumInfo_ToolHelp_process.txt" ) ;  

// 循环枚举进程信息  
char szBuf[MAX_BUF_SIZE] = {0} ;  
if ( Process32First ( hProcessShot, &pe32 ) )  
{  
    do {  
        memset ( szBuf, 0, sizeof(szBuf) ) ;  
        // 把宽字符的进程名转化为ANSI字符串  
        WideCharToMultiByte (CP_ACP, 0, pe32.szExeFile, wcslen(pe32.szExeFile), szBuf, sizeof(szBuf), NULL, NULL );  

        fout << "Process: " << szBuf << endl ;  
        fout << '\t' << "Usage           : " << pe32.cntUsage << endl ;  
        fout << '\t' << "ProcessID       : " << pe32.th32ProcessID << endl ;  
        fout << '\t' << "DefaultHeapID   : " << (ULONG_PTR)pe32.th32DefaultHeapID << endl ;  
        fout << '\t' << "ModuleID        : " << pe32.th32ModuleID << endl ;  
        fout << '\t' << "ThreadNum       : " << pe32.cntThreads   << endl ;  
        fout << '\t' << "ParentProcessID : " << pe32.th32ParentProcessID << endl ;  
        fout << '\t' << "PriClassBase    : " << pe32.pcPriClassBase << endl ;  
    }while ( Process32Next ( hProcessShot, &pe32 ) ) ;  
}  

fout.close () ;  
CloseHandle ( hProcessShot ) ;  
return TRUE ;  

}

可参考以下链接

http://blog.csdn.net/zhongbin104/article/details/7867309

调用CreateToolhelp32Snapshot就可以了。

话说你关注的问题不对。你应该问用什么函数,用什么方法,然后告诉你 api 函数名,你去 google 找代码。

你却问几个源代码文件,这毫不重要。

就好比你做数学题,你应该问用什么定理用什么公式。而不是问需要几张草稿纸,需要写多少行。

我是进来学习一下的,一个头文件一个源文件估计就行

可以用就行了吧,就是调用API而已