如何获取Windows C++中进程(输入:进程ID或句柄)的每秒接收和发送网络字节数?



我需要像在资源监视器中一样获取每个进程的网络信息。我需要找到接收到的字节/秒&发送字节/秒。

我试图得到它使用Win32_PerfRawData_PerfProc_Process类。但是它提供了IO,文件字节以及网络细节。

我试图使用Win32_PerfRawData_Tcpip_NetworkInterface类获取详细信息。但是它给出了每个网络接口的详细信息。

然后我尝试使用GetTcpStatistics函数。为此使用了MIB_IPSTATS。MIB_IPSTATS显示整个过程的累积结果。

  1. 是否有其他MIB结构来显示每个进程的这些细节?
  2. 如何获得字节/秒每进程的东西,就像在资源监视器Win32_PerfRawData_Tcpip_NetworkInterface中显示的整个进程的累积数据一样
  3. 我可以计算字节/秒使用Win32_PerfRawData_PerfProc_Process类基于其他值?
  4. 是否有像GetProcessMemoryInfo(此方法是获得进程内存)这样的方法来获得每秒接收和发送的字节?
  5. 还有其他的计算方法吗?

您可以尝试查看性能计数器。

https://msdn.microsoft.com/en-us/library/windows/desktop/aa373083 (v = vs.85) . aspx

下面是一个使用性能计数器获得网络速度的代码项目示例。它是c#,但你应该能够翻译成c++。

http://www.codeproject.com/Articles/6259/Monitoring-network-speed '

最新更新