Windows下获取进程信息的示例代码

作者:佚名 上传时间:2023-04-22 运行软件:Visual Studio 2019 软件版本:Windows 10 版权申诉

介绍Windows平台下通过API函数获取进程相关信息的示例代码,展示了如何使用Windows API函数获取进程名称、PID等信息。

#include <windows.h>
#include <tlhelp32.h>
#include <tchar.h>

void ListProcessModules(DWORD dwPID)
{
    HANDLE hModuleSnap = INVALID_HANDLE_VALUE;
    MODULEENTRY32 me32;
    hModuleSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwPID);
    if (hModuleSnap == INVALID_HANDLE_VALUE)
    {
        _tprintf(_T("CreateToolhelp32Snapshot (of modules)"));
        return;
    }
    me32.dwSize = sizeof(MODULEENTRY32);
    if (!Module32First(hModuleSnap, &me32))
    {
        _tprintf(_T("Module32First"));  // Module32First failed
        CloseHandle(hModuleSnap);
        return;
    }
    do
    {
        _tprintf(_T("\n   MODULE NAME:     %s"), me32.szModule);
        _tprintf(_T("\n   Executable     : %s"), me32.szExePath);
        _tprintf(_T("\n   Process ID     : 0x%08X"), me32.th32ProcessID);
        _tprintf(_T("\n   Ref count (g)  :     0x%04X"), me32.GlblcntUsage);
        _tprintf(_T("\n   Ref count (p)  :     0x%04X"), me32.ProccntUsage);
        _tprintf(_T("\n   Base address   : %p"), me32.modBaseAddr);
        _tprintf(_T("\n   Base size      : %d"), me32.modBaseSize);
    } while (Module32Next(hModuleSnap, &me32));
    CloseHandle(hModuleSnap);
}

void ListProcess(DWORD dwProcessId)
{
    HANDLE hProcess;
    HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    PROCESSENTRY32 pe32;
    if (INVALID_HANDLE_VALUE == hProcessSnap)
    {
        return;
    }
    pe32.dwSize = sizeof(PROCESSENTRY32);
    if (!Process32First(hProcessSnap, &pe32))
    {
        CloseHandle(hProcessSnap);
        return;
    }
    do
    {
        if (pe32.th32ProcessID == dwProcessId)
        {
            _tprintf(_T("\nPROCESS NAME:  %s"), pe32.szExeFile);
            _tprintf(_T("\nPID          :  0x%08X"), pe32.th32ProcessID);
            _tprintf(_T("\n"));
            ListProcessModules(dwProcessId);
        }
    } while (Process32Next(hProcessSnap, &pe32));
    CloseHandle(hProcessSnap);
}

int main(int argc, char* argv[])
{
    ListProcess(atoi(argv[1]));  // argv[1]为进程PID
    return 0;
}

免责申明:文章和图片全部来源于公开网络,如有侵权,请通知删除 server@dude6.com

用户评论
相关推荐
Windows获取进程信息示例代码
介绍Windows平台下通过API函数获取进程相关信息的示例代码,展示了如何使用Windows API函数获取进程名称、PID等信息。#include <windows.h>#incl
Windows 10
Visual Studio 2019
2023-04-22 03:32
使用Python在Windows获取进程信息方法
介绍如何使用Python在Windows下获取进程的PID、名称、CPU占用率等信息。使用了win32api和psutil库,通过调用系统接口获取信息。import win32apiimport
Python 3.7.9
2023-03-19 13:33
获取Windows系统进程运行信息doc
获取Windows系统的进程运行信息
DOC
0B
2019-01-07 22:01
windowsCPU信息获取
获取CPU类型,品牌,型号,频率,内核数,是否支持超线程,序列号,制造商,规格,步进,系列,1,2级缓存,高速缓存大小,指令集等信息
H
0B
2019-03-10 04:38
C#获取进程信息获取进程信息
C#进程管理源码,获取进程信息!!!!!!!!!!!!
RAR
0B
2020-05-29 18:14
通过Python实现获取Windows系统进程列表和状态信息示例代码
本示例代码通过Python调用Windows API获取系统进程列表和状态信息,并将获取到的信息以表格形式输出。该示例代码可用于监控系统状态和进程性能等场景。import psutilimport
Python 3.9.5
Visual Studio Code
2023-03-20 18:49
FreeBSD使用procfs获取进程信息
本示例代码展示了在FreeBSD系统下,如何使用procfs文件系统来获取进程的状态信息,包括进程ID、父进程ID、进程状态等。实现方式是使用C语言编写,通过读取/proc目录下的相关文件来获取进程信
FreeBSD 13.0
C语言
2023-03-18 03:27
C# 获取进程退出代码实现示例
主要介绍了C# 获取进程退出代码的实现示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
PDF
62KB
2020-10-14 10:07
C获取进程信息代码
C#获取进程相关信息的源代码,有相关需要的可以看一下
RAR
0B
2019-01-22 05:46
.net获取进程信息含源代码
.net下获取系统进程信息(含源代码)。主要包括:进程名,进程ID,线程数,CPU占用时间,线程优先级,物理内存,虚拟内存,分页内存,峰值内存,专用内存等等。.NET2.0框架
RAR
0B
2019-09-03 23:40