3

Visual Studio 2010で WIN32 アプリケーションに取り組んでいます。コードから外部 exe を実行する必要がありますが、そのウィンドウを表示する必要はありません。exeを実行するとともに、特定の引数をexeに渡しています。私のコードが与えられます

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

system(path) を使えばちゃんと実行されexeのウィンドウも表示されるのですが、ShellExecute(hWnd, "open",path, NULL, NULL, SWP_HIDEWINDOW); を使えば 指定されたパスのexeは実行されません。どうすればこの問題を克服できますか、親切に教えてください

4

2 に答える 2

6

ShellExecuteプログラム名とそのパラメータを別々に指定する必要があります。これを試して:

ShellExecute(hWnd, NULL, "D:\\scan\\scan.exe", "-l", NULL, SW_HIDE);
于 2013-10-03T08:40:36.003 に答える
2

CreateProcessプログラムの呼び出しにシェルを使用しないものを実際に使用する必要があります。これにより、プログラムの出力をキャプチャして、出力される可能性のあるエラー コードを取得することもできます。

GUIアプリのウィンドウを非表示にする必要がある場合は、呼び出しで設定できます(CREATE_NO_WINDOWこの回答を参照)dwFlagsCreateProcess

于 2013-10-03T08:56:11.883 に答える