c++-枚举进程的具体详细的代码

问题描述

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

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

解决方案

调用CreateToolhelp32Snapshot就可以了。

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

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

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

解决方案二:

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

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 ;

}

解决方案三:

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

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

解决方案四:

可参考以下链接

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

解决方案五:

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

解决方案六:

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

解决方案七:

Windows上有api,Process32Frist Process32Next

时间: 2024-08-02 11:28:41

c++-枚举进程的具体详细的代码的相关文章

wcf-Android用ksoap2调用WCF的问题,详细如代码。

问题描述 Android用ksoap2调用WCF的问题,详细如代码. 用Java和WCF框架实现了一个Webservice,在浏览器中输入http://localhost:9999/cat?wsdl 得到: //--------------------------------------------------/wsdl:import /wsdl:input /wsdl:output/wsdl:operation /wsdl:input /wsdl:output/wsdl:operation/w

在c#中如何用gdi+ 画出柱形图,和饼形图,能不能提供点详细的代码?

问题描述 在c#中如何用gdi+画出柱形图,和饼形图,能不能提供点详细的代码? 解决方案 解决方案二:Bitmapbmp=newBitmap(Width,Height);Graphicsg=Graphics.FromImage(bmp);g.DrawEllipse(//画饼图g.DrawRectangle(//画柱形图g.DrawLine(//画线随手写的,参考一下吧.

OpenGl第四章 纹理详细亮度调整代码注释

OpenGl使用纹理在上一个正方体中知识简单的添加了一个纹理,这一章主要是通过设置三个面的纹理来进行详细的学习: 上次纹理的调用是在onSurfaceCreated  的时候才调用,现在,在Render中当执行 onSurfaceChanged的时候,就对纹理进行初始化操作 /*** 这是来进行纹理初始化的方法* @param gl*/private void LoadTextures(GL10 gl) {// create texturesgl.glEnable(GL10.GL_TEXTURE

根据Merge Sort原理,自己实现的归并排序算法+详细注释+代码

1. 不多废话,我已经把注释写得很详细了,C#实现的分享如下: /// <summary> /// 归并排序之归:归并排序入口 /// Updated by Lihua at 05/06/2009 /// </summary> /// <param name="data">无序数组</param> /// <returns>有序数组</returns> /// <author>lihua</aut

jQuery Ajax方法调用 Asp.Net WebService 的详细实例代码_jquery

ws.aspx 代码 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1&q

asp连接mysql数据库详细实现代码

想要asp能连接mysql数据库需要安装MySQL ODBC 3.51 驱动 http://www.jb51.net/softs/19910.html 我们先看下面这段代码 复制代码 代码如下: set conn = server.createobject("adodb.connection") Conn.Open "DRIVER={MySQL ODBC 3.51 Driver};SERVER=127.0.0.1;DATABASE=Shops;USER=root;PASSWO

asp连接mysql数据库详细实现代码_应用技巧

想要asp能连接mysql数据库需要安装MySQL ODBC 3.51 驱动 http://www.jb51.net/softs/19910.html我们先看下面这段代码 复制代码 代码如下: set conn = server.createobject("adodb.connection") Conn.Open "DRIVER={MySQL ODBC 3.51 Driver};SERVER=127.0.0.1;DATABASE=Shops;USER=root;PASSWOR

求解释spring事物详细,代码已帖

问题描述 这是控制事物:哪位同学帮我解释下,关于里面的属性都有什么用处,还有再处理批处理的时候,假设有10条数据,保存一半就报错了,但是有5条能存入,然后返回失败的原因,做好有service层代码例子让我看看,谢谢啦.<bean name="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property n

python 为 mysql 实现 restful 接口的详细步骤代码

最近在做游戏服务分层的时候,一直想把mysql的访问独立成一个单独的服务DBGate,原因如下:     请求收拢到DBGate,可以使DBGate变为无状态的,方便横向扩展     当请求量或者存储量变大时,mysql需要做分库分表,DBGate可以内部直接处理,外界无感知     通过restful限制对数据请求的形式,仅支持简单的get/post/patch/put 进行增删改查,并不支持复杂查询.这个也是和游戏业务的特性有关,如果网站等需要复杂查询的业务,对此并不适合     DBGat