我正在使用 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。 我该如何克服这个问题,请指导我
答案 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)