我正在使用我自己的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