从win32应用程序运行外部exe

时间:2013-10-03 08:37:19

标签: c++ windows winapi visual-c++

我正在使用 Visual Studio 2010 中的WIN32应用程序。我必须从我的代码执行外部exe,但不必显示它的窗口。以及执行exe我正在向exe传递某些参数。我的代码是

char path[] = "D:\\scan\\scan.exe -l";
system(path);
//ShellExecute(hWnd, "open",path, NULL, NULL, SWP_HIDEWINDOW); 

如果我使用系统(路径)它正确执行但是也显示了exe的窗口,但是如果我使用ShellExecute(hWnd,“open”,path,NULL,NULL,SWP_HIDEWINDOW);然后不执行给定路径的exe。 我该如何克服这个问题,请指导我

2 个答案:

答案 0 :(得分:5)

ShellExecute希望单独给出程序名称及其参数。试试这个:

ShellExecute(hWnd, NULL, "D:\\scan\\scan.exe", "-l", NULL, SW_HIDE);

答案 1 :(得分:2)

您应该使用不使用shell来调用程序的CreateProcess。这也允许您捕获程序输出并检索它可能给出的任何错误代码。

如果您需要隐藏GUI应用的窗口,可以在CREATE_NO_WINDOW来电中dwFlags设置CreateProcess(cfr。this answer