如何在Windows上使用Qt获取开放端口的进程名称和二进制路径?

时间:2014-05-22 20:05:14

标签: windows qt service port netstat

我正在编写端口冲突检查功能。 我需要确定:

  • 如果某个端口已打开
  • 守护程序的进程名称
  • 守护程序二进制文件的路径

我的想法是运行QProcess执行本机命令netstat -abno并解析输出。但是参数-b需要提升权限(UAC),并且我不想通过UAC提示错误用户。

是否有提供此类功能的Qt lib? 你会如何实现这个?

2 个答案:

答案 0 :(得分:2)

您可以使用Tcpvcon.exe的{​​{1}}作为TCPView的一部分 TCPView 需要管理员权限, tcpvcon 不需要 与-an-acn一起使用 您甚至可以指定要在之后检查的应用程序:例如Tcpvcon.exe -an Skype

最初由Dane发现:

  

如果您需要GUI,请使用TCPView。这是微软收购的旧版Sysinternals应用程序

答案 1 :(得分:1)

  • 我的想法是运行一个QProcess执行本机命令netstat -abno并解析输出

要做到这一点你可以:

QProcess cmdProcess;
...
cmdProccess.start(..);
while(cmdProcess.waitForReadyRead(-1)) someParseFunction(cmdProcess.readAllStandardOutput());