我正在使用我自己的C++程序中的API,該程序通過TCP連接的服務器客戶關係與API的第三方應用程序進行通信。此時,我必須先手動打開服務器控制檯應用程序(.exe),然後再打開客戶端控制檯應用程序(也是.exe)。爲了執行必要的任務,這兩個窗口在我的應用程序中必須在後臺保持打開狀態。運行C++中保持開放的多個exe控制檯應用程序
我想按照上面介紹的順序自動執行這兩個.exe文件。我已經嘗試了兩次連續的ShellExecute()Windows API函數調用,我嘗試了舊的system()函數,並試圖打開這樣的批處理文件: ShellExecute(NULL,「open」,「ocrtext.bat」,NULL, NULL,SW_SHOW);
凡批處理文件基本是這樣的: 啓動C:\ videoocr \服務器\ ocrD.exe START /wc:\videoocr\server\ocrGW.exe
所有這些選項也存在同樣的問題:服務器控制檯窗口打開正常,但客戶端窗口無法打開。我懷疑這個問題與無法調用多個控制檯應用程序有關,每個控制檯應用程序都保持與這些方法一致。
我該怎麼辦?先謝謝你。
使用'ShellExecuteEx'或'CreateProcess'直接運行服務器控制檯(使用其EXE路徑)。使用'INFINITE'或有限的時間將服務器進程句柄傳遞給'WaitForInputIdle'函數。然後直接執行客戶端控制檯(使用其EXE路徑)。 – Jay 2012-08-06 00:30:41
我很抱歉,但我不會在這裏跟着你。你能給一個編碼的例子嗎?我從哪裏獲得服務器進程句柄? – user1530101 2012-08-06 21:26:03