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的啓動。隨筆記錄,以作參考