[轉載][QT] qprocess調用cmd命令並獲取控制檯輸出

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

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章