QStringList arguments;
arguments << "/c" << "netstat -tno|findStr ***.***.***.***(ip地址)";
QProcess process(this);
process.start("cmd.exe", arguments);
process.waitForStarted();
process.waitForFinished();
QString dosRet = QString::fromLocal8Bit(process.readAllStandardOutput());
从其他博客中淘宝了一段有效代码。cmd命令稍作修改,目标是【监听】本地tcp连接【指定ip】。
原本用waitForFinished()函数,无法获取到cmd命令的控制台输出(直接打到调试信息窗口)。
上面的代码加上waitForStarted()就可以获取了。(qt5.4 mingw)
猜测是cmd外部程序在执行中不会主动与qt进程交换数据,需要qt进程监听cmd的启动。随笔记录,以作参考