zoukankan      html  css  js  c++  java
  • 枚举进程,线程,堆 CreateToolhelp32Snapshot

    Takes a snapshot of the processes and the heaps, modules, and threads used by the processes.
    对当前系统进行一个快照。
    函数定义:
    HANDLE WINAPI CreateToolhelp32Snapshot
                                                                              DWORD dwFlags,      
                                                                              DWORD th32ProcessID 
                                                                             );
    参数说明:
    dwFlags:要枚举的类型,一般取值如下:
                                                                 TH32CS_SNAPPROCESS 枚举进程
                                                                 TH32CS_SNAPMODULE  枚举进程中的dll
                                                                 TH32SNAPTHREAD  枚举进程中的线程
    th32ProcessID:当枚举进程时此参数被忽略,可以为0,其他情况表示进程的ID发你会

    返回值:
    成功返回一个有效的句柄,失败返回INVALID_HANDLE_VALUE,CloseHandle关掉打开的句柄

    举例说明:
    下面写一个程序:对当前系统进行快照,然后输出进程ID ,进程名,进程的父进程ID。
    进行快照后要用到 Process32First  Process32Next 函数交替枚举信息

        int main()
    {
    HANDLE hTLSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    if (INVALID_HANDLE_VALUE == hTLSnapshot)
    {
    return 0;
    }

    PROCESSENTRY32 pe = {0};
    pe.dwSize = sizeof(PROCESSENTRY32);

    BOOL bRet = Process32First(hTLSnapshot, &pe);
    //int nErr = GetLastError();
    if (!bRet)
    {
    CloseHandle(hTLSnapshot);
    return 0;
    }

    do
    {
    WCHAR szExeFile[MAX_PATH] = { 0 };
    wcscpy_s(szExeFile, MAX_PATH, pe.szExeFile);
    DWORD dwParentId = pe.th32ParentProcessID;
    DWORD dwProcessId = pe.th32ProcessID;

    WCHAR szShow[0x270] = { 0 };
    wsprintf(szShow, L"%s %d %d ", szExeFile, dwParentId, dwProcessId);
    wprintf(L"%s ", szShow);

    } while (Process32Next(hTLSnapshot, &pe));

    CloseHandle(hTLSnapshot);
    return 0;
    }
  • 相关阅读:
    iot 表索引dump《2》
    heap表和iot表排序规则不同
    Cannot complete the install because one or more required items could not be found.
    iot表输出按主键列排序,heap表不是
    iot 表主键存放所有数据,且按数据插入顺序排序
    iot表和heap表排序规则不同
    org.eclipse.graphiti.ui.editor.DiagramEditorInput.
    Oracle 排序规则
    perl 异步超时 打印错误
    14.6.3 Grouping DML Operations with Transactions 组DML操作
  • 原文地址:https://www.cnblogs.com/priarieNew/p/9753409.html
Copyright © 2011-2022 走看看