首页
社区
课程
招聘
[旧帖] [讨论]怎么枚举当前正在运行的进程id 0.00雪花
发表于: 2012-8-28 14:45 1212

[旧帖] [讨论]怎么枚举当前正在运行的进程id 0.00雪花

2012-8-28 14:45
1212
收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 61
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
VOID GetProcessInformation(char ( * sOutProcessInformation)[30] )   //获取进程列表
{
        HANDLE hSnapshot;
       
        PROCESSENTRY32 stProcess;
       
        BOOL lReturnVaule;

        int i = 0;
       
        hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS ,0);
       
        lReturnVaule = Process32First(hSnapshot , &stProcess);
       
        while(lReturnVaule)
        {
                sprintf(sOutProcessInformation[i++] , "%d:%s--%d" ,
                        i,stProcess.szExeFile,stProcess.th32ProcessID);

                lReturnVaule = Process32Next(hSnapshot ,&stProcess);
        }

}
VOID ShowProcess(char (* ShowPrcInf)[30])   //显示进程列表
{
        for(int i = 0; ShowPrcInf[i][0] != NULL ; i ++ )
        {
                puts(ShowPrcInf[i]);
        }
}
DWORD GetProessId(DWORD lpProessNum)   //通过标号获取进程ID
{
        HANDLE Snatshot = NULL;
        DWORD dwProessId = 0;;
        PROCESSENTRY32 StructProess ;
        DWORD i = 0;
        Snatshot = CreateToolhelp32Snapshot(
                TH32CS_SNAPPROCESS,0);
        BOOL ReturnValue = Process32First(
                Snatshot , &StructProess);
        while(ReturnValue)
        {
                if(i == lpProessNum)
                {
                        dwProessId = StructProess.th32ProcessID ;
                        return dwProessId;
                }
                ReturnValue = Process32Next(
                        Snatshot , &StructProess );
                i++;
        }
        CloseHandle(Snatshot);
        return FALSE;
}

上面三个函数是我从自己曾经写过的一个工程中提取出来的,作用是通过调用API获取进程快照,然后遍历进程,获取信息,然后另外一个函数获取进程ID。 那详细信息里面包含ID。

这是一种方法,另一种方法是你可以写驱动在0环,遍历进程链表,在Eprocess结构体里面有记录进程ID。。。  这种方法比较繁琐一些,不详解了。。。
2012-8-28 15:15
0
雪    币: 67
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
已知。利用ZwQuerySystemInformation。
2012-8-28 15:22
0
雪    币: 67
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
[QUOTE=TzdnerC;1097785]VOID GetProcessInformation(char ( * sOutProcessInformation)[30] )   //获取进程列表
{
        HANDLE hSnapshot;
       
        PROCESSENTRY32 stProcess;
       
        BOOL lReturnVa...[/QUOTE]

谢谢。我用的驱动写的
2012-8-28 15:24
0
游客
登录 | 注册 方可回帖
返回
//