[問題] TerminateProcess執行結果有問題

看板C_and_CPP作者 (肥龜)時間9年前 (2015/11/21 16:30), 編輯推噓1(109)
留言10則, 4人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 程式的目的為開啟一個CMD的程式,並且把其關閉,但使用TerminateProcess後 卻無反應,請問這是正確的執行結果嗎 餵入的資料(Input):預期的正確結果(Expected Output): 本程式為使空拍機起飛並關閉其控制視窗 錯誤結果(Wrong Output): 程式無反應,空拍機也飛不起來 程式碼(Code):(請善用置底文網頁, 記得排版) #include "stdafx.h" #include <string> #include <stdio.h> #include <windows.h> #include <iostream> #include <WinBase.h> wchar_t CmdString1[] = {L"C:\\Windows\\System32\\cmd.exe /c node 0.js"}; private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { BOOL bSuccess; STARTUPINFO StartInfo; PROCESS_INFORMATION ProcInfo; HANDLE hNewProc, hNewThread; DWORD dwProcID, dwThreadID; //Initial STARTUPINFO StartInfo.cb = sizeof(STARTUPINFO); StartInfo.lpReserved = NULL; StartInfo.lpDesktop = NULL; StartInfo.lpTitle = NULL; StartInfo.cbReserved2 = 0; StartInfo.lpReserved2 = NULL; //Initial PROCESS_INFORMATION ProcInfo.hProcess = hNewProc; ProcInfo.hThread = hNewThread; ProcInfo.dwProcessId = dwProcID; ProcInfo.dwThreadId = dwThreadID; bSuccess = CreateProcess( NULL, // name of executable module CmdString1, // command line string NULL, // SD NULL, // SD true, // handle inheritance option CREATE_NEW_CONSOLE,//CREATE_NEW_PROCESS_GROUP, // creation flags NULL, // new environment block NULL, // current directory name &StartInfo, // startup information &ProcInfo // process information ); TerminateProcess(ProcInfo.hProcess,0); } 補充說明(Supplement): 另外請問TerminateProcess這樣的用法正不正確 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.117.192.66 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1448123411.A.A47.html

11/23 05:59, , 1F
天...你Terminate建好的process啦
11/23 05:59, 1F

11/23 06:01, , 2F
要隱藏CMD畫面?要嘛直接傳node 0.js要嘛改SW_參數
11/23 06:01, 2F

11/23 06:04, , 3F
在STARTUPINFO裡 MSDN上去查
11/23 06:04, 3F

11/23 06:57, , 4F
個人認為TerminateProcess是成功的,原PO請安心
11/23 06:57, 4F

11/23 06:58, , 5F
只是還沒執行完就被強制關掉
11/23 06:58, 5F

11/23 07:02, , 6F
CreateProcess後下一行馬上TerminateProcess
11/23 07:02, 6F

11/23 07:03, , 7F
新建的程緒大概執行了0.0001秒
11/23 07:03, 7F

11/23 11:12, , 8F
你沒有用WaitSingleObject??
11/23 11:12, 8F

11/24 20:48, , 9F
請問用Sleep也可以嗎?
11/24 20:48, 9F

11/24 21:15, , 10F
我有用WaitForSingleObject停止兩秒,但卻打開後關不掉
11/24 21:15, 10F
文章代碼(AID): #1MK9mJf7 (C_and_CPP)