使用命名管道,發現程式退出以后始終有一個cmd.exe程式沒退出~~~請問有沒有什么命令能在關閉程式的時候自動關閉這個cmd.exe~~~
CString strCmd;
//strCmd = "cmd /k ping 192.168.0.80";//加上"cmd /k"是為了能執行類似dir的命令
strCmd = "cmd /k ping ";//加上"cmd /k"是為了能執行類似dir的命令
strCmd+=serv_addr;
//創建命名管道
if (!CreatePipe(&hRead, &hWrite, &sa, 0))
{
//MessageBox("Error On CreatePipe()");
return;
}
STARTUPINFO si;
PROCESS_INFORMATION pi;
si.cb = sizeof(STARTUPINFO);
GetStartupInfo(&si);
si.hStdError = hWrite;//資料輸出用的檔案句柄
si.hStdOutput = hWrite;//資料輸出用的檔案句柄
si.wShowWindow = SW_HIDE;
si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
OutputDebugString("1");
uj5u.com熱心網友回復:

cmd /k ping
如果程式ping沒退出,那么你cmd就不會退出。
但可以用超時控制去taskkill 殺掉ping或者cmd
uj5u.com熱心網友回復:
cmd /k ping用CreateProcess啟動一個輔助行程,關閉程式時TerminateProcess。
uj5u.com熱心網友回復:
什么意思?在解構式的時候呼叫TerminateProcess?
uj5u.com熱心網友回復:
也不一定是解構式,這個函式就是強制關閉一個行程。新建一個行程運行cmd,通過匿名管道把cmd的輸出傳回主程式。uj5u.com熱心網友回復:
正常可以發送命令 exit來退出, 再判斷是否正常退出, TerminateProcess可以強制結束uj5u.com熱心網友回復:
我的想法是程式關閉這個cmd行程就結束,怎么實作?
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/10474.html
標籤:基礎類
