美文网首页
获取系统进程

获取系统进程

作者: 风暴猪猪侠 | 来源:发表于2017-12-30 19:29 被阅读0次
    //readProcess.cpp
    /***************************************
    有些程序需要列出当前正在运行的一些列进程,使用ToolHelp函数就可以完成这一任务。
    下面程序
    1、首先使用CreateToolhelp32Snapshot函数给当前系统内执行的进程拍快照(Snapshot),
    也就获得一个进程列表,这个列表中记录着进程的ID、进程对应的可执行文件的名称和创建该进程的进程ID等数据。
    2、然后使用Process32First函数和Process32Next函数遍历快照中记录的列表。
    3、对于每个进程,我们都将打印出其可执行文件的名称和进程ID号。
    ***************************************/
    #include <stdio.h>
    #include <stdlib.h>
    #include <windows.h>
    #include <tlhelp32.h> //声明快照函数的头文件
    
    int main(int argc, char *argv[])
    {
        PROCESSENTRY32 pe32;
        //在使用这个结构之前,先设置它的大小
        pe32.dwSize = sizeof(pe32);
        //给系统内所有的进程拍一个快照
        HANDLE hProcessSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
        if (hProcessSnap == INVALID_HANDLE_VALUE)
        {
            printf("CreateToolhelp32Snapshot调用失败!   \n");
            return -1;
        }
        //遍历进程快照,轮流显示每个进程的信息
        BOOL bMore = ::Process32First(hProcessSnap, &pe32);
        while (bMore)
        {
            printf(" 进程名称:%s\n", pe32.szExeFile);
            printf(" 进程ID号:%u\n\n", pe32.th32ProcessID);
            bMore = ::Process32Next(hProcessSnap, &pe32);
        }
        //不要忘记清除掉snapshot对象
        ::CloseHandle(hProcessSnap);
    
        system("pause");
        return 0;
    }
    

    参考:windows程序设计(第二版)

    相关文章

      网友评论

          本文标题:获取系统进程

          本文链接:https://www.haomeiwen.com/subject/hyjngxtx.html