如何获得收到&每秒发送的网络字节数对于C ++ for Windows中的进程(输入:进程ID或句柄)?

时间:2015-07-09 21:59:47

标签: c++ windows

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

我尝试使用Win32_PerfRawData_PerfProc_Process类来获取它。但除了网络细节之外,它还提供IO,文件字节。

我尝试使用Win32_PerfRawData_Tcpip_NetworkInterface类获取详细信息。但它提供了每个网络接口的详细信息。

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

  1. 是否有其他MIB结构可以按流程方式显示这些详细信息?
  2. 如何在资源监视器中获取Bytes / s事件,就像在Win32_PerfRawData_Tcpip_NetworkInterface中显示为整个进程的累积数据一样
  3. 我可以根据其他值使用Win32_PerfRawData_PerfProc_Process类计算字节数吗?
  4. 是否有像GetProcessMemoryInfo这样的方法(这个方法是获取进程内存)来获取每秒接收和发送的字节数?
  5. 还有其他方法可以计算它们吗?

1 个答案:

答案 0 :(得分:0)

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

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