4
我試圖執行使用如何使用QProcess執行cmd命令?
QProcess::startDetached("cmd /c net stop \"MyService\"");
這似乎並沒有停止服務一個cmd命令。但是,如果我從開始>>運行它,它運作。
我試圖執行使用如何使用QProcess執行cmd命令?
QProcess::startDetached("cmd /c net stop \"MyService\"");
這似乎並沒有停止服務一個cmd命令。但是,如果我從開始>>運行它,它運作。
QProcess中:: startDetached將採取的第一個參數作爲要執行的命令和以下參數,以空格分隔的,將被解釋爲獨立的參數,以該命令。
因此,在這種情況下: -
QProcess::startDetached("cmd /c net stop \"MyService\"");
功能看到CMD作爲命令,並傳遞/ C,淨,停止和 「爲MyService」 作爲參數到CMD。然而,除/ c之外,其他的被分別解析並且不是有效的參數。
你需要做的是用引號將「淨停止\」爲MyService \」把它作爲一個參數,這樣就會給你: -
QProcess::startDetached("cmd /c \"net stop \"MyService\"\"");
另外,使用字符串列表你可以使用: -
QProcess::startDetached("cmd", QStringList() << "/c" << "net stop \"MyService\"");
嘗試startDetached( 「CMD」,QStringList中()<< 「/ C」 << 「網」 << 「停止」 << 「則將MyService」);並以相同的<< 「\」爲MyService \「」。爲了進一步調試,不使用startDetached但啓動並連接到QProcess中實例的完成()和誤差()信號。 –
這是我TR IED'另外,QProcess :: startDetached( 「cmd.exe的」,QStringList中()<< 「/ C」 << 「網」 << 「停止」 << 「\」 爲MyService \ 「」);'和它不是工作 – MistyD
@ MistyD:嘗試沒有所有額外的空間,就像弗蘭克建議的那樣。 –