要获取Windows 10下资源监视器中网络活动的进程发送和接收流量,你可以使用Windows API函数来实现。以下是一个示例代码,它使用GetTcpTable2函数来获取TCP连接信息,并使用GetProcessIdOfTcpEntry函数来获取进程ID。然后,使用GetProcessImageFileName函数来获取进程的可执行文件路径,并使用GetProcessIoCounters函数来获取进程的I/O计数器信息。

#include <iostream>
#include <windows.h>
#include <iphlpapi.h>
#include <psapi.h>

#pragma comment(lib, "iphlpapi.lib")
#pragma comment(lib, "psapi.lib")

int main()
{
    MIB_TCPTABLE2* pTcpTable;
    DWORD dwSize = 0;

    // 获取TCP连接信息
    if (GetTcpTable2(pTcpTable, &dwSize, TRUE) == ERROR_INSUFFICIENT_BUFFER)
    {
        pTcpTable = (MIB_TCPTABLE2*)malloc(dwSize);
        if (GetTcpTable2(pTcpTable, &dwSize, TRUE) != NO_ERROR)
        {
            free(pTcpTable);
            std::cout << "Failed to get TCP table" << std::endl;
            return 1;
        }
    }
    else
    {
        std::cout << "Failed to get TCP table size" << std::endl;
        return 1;
    }

    // 遍历TCP连接信息
    for (DWORD i = 0; i < pTcpTable->dwNumEntries; i++)
    {
        MIB_TCPROW2 tcpRow = pTcpTable->table[i];

        // 获取进程ID
        DWORD dwProcessId = GetProcessIdOfTcpEntry(&tcpRow);

        // 获取进程可执行文件路径
        HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, dwProcessId);
        if (hProcess != NULL)
        {
            CHAR szProcessPath[MAX_PATH];
            if (GetProcessImageFileNameA(hProcess, szProcessPath, MAX_PATH) > 0)
            {
                std::cout << "Process ID: " << dwProcessId << std::endl;
                std::cout << "Process Path: " << szProcessPath << std::endl;

                // 获取进程的I/O计数器信息
                IO_COUNTERS ioCounters;
                if (GetProcessIoCounters(hProcess, &ioCounters))
                {
                    std::cout << "Bytes Sent: " << ioCounters.WriteTransferCount << std::endl;
                    std::cout << "Bytes Received: " << ioCounters.ReadTransferCount << std::endl;
                }
            }
            CloseHandle(hProcess);
        }
    }

    free(pTcpTable);
    return 0;
}

请注意,此代码仅获取TCP连接的进程发送和接收流量。如果你想获取其他类型的网络连接(如UDP连接),你需要相应地修改代码。此外,为了使用这些Windows API函数,你需要包含相应的头文件,并链接相应的库文件。

获取windows10下资源监视器中网络活动的进程发送与接收流量C++

原文地址: http://www.cveoy.top/t/topic/ieCH 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录