首页 > 编程语言 > 详细

C++.进程1

时间:2020-03-11 00:08:12      阅读:63      评论:0      收藏:0      [点我收藏+]
#include <TlHelp32.h>
#include <vector>
BOOL TraversalProcess1(OUT std::vector<PROCESSENTRY32> &vec)
{
    /************************************************************************/
    /* 
    typedef struct tagPROCESSENTRY32
    {
    DWORD   dwSize;
    DWORD   cntUsage;
    DWORD   th32ProcessID;          // this process
    ULONG_PTR th32DefaultHeapID;
    DWORD   th32ModuleID;           // associated exe
    DWORD   cntThreads;
    DWORD   th32ParentProcessID;    // this process's parent process
    LONG    pcPriClassBase;         // Base priority of process's threads
    DWORD   dwFlags;
    CHAR    szExeFile[MAX_PATH];    // Path 其实是进程名称
    } PROCESSENTRY32;
    */
    /************************************************************************/
    vec.clear();
    try
    {
        HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
        if (hSnap != INVALID_HANDLE_VALUE)
        {
            PROCESSENTRY32 item;
            item.dwSize = sizeof(item);
            if (Process32First(hSnap, &item))
            {
                do 
                {
                    vec.push_back(item);
                } while (Process32Next(hSnap, &item));
            }
            CloseHandle(hSnap);
        }
    }
    catch (...)
    {
        OutputDebugStringA(__FUNCTION__);
        return 0;
    }
    return vec.size() > 0;
}

int main()
{
    std::vector<PROCESSENTRY32> vec;
    std::cout << TraversalProcess1(vec) << endl;
    for each (PROCESSENTRY32 var in vec)
    {
        printf("%d\t", var.th32ProcessID);
        printf("%d\t", var.th32ParentProcessID);
        printf("%S\r\n", var.szExeFile);
    }

    return 0;
}

C++.进程1

原文:https://www.cnblogs.com/dailycode/p/12459274.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!