我使用CreateProcess来运行命令并使用CREATE_NO_WINDOW标志,但控制台会弹出一小段时间,如何避免它?
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );
CreateProcess
(
NULL, // No module name (use command line)
command, //set env variable and use it is my command
NULL, // Process handle not inheritable
NULL, // Thread handle not inheritable
FALSE, // Set handle inheritance to FALSE
CREATE_NO_WINDOW, //don't create window but it appears for fraction of second!
NULL, // Use parent's environment block
NULL, // Use parent's starting directory
&si, // Pointer to STARTUPINFO structure
&pi // Pointer to PROCESS_INFORMATION structure
)
提前感谢您的帮助。
答案 0 :(得分:0)
在STARTUPINFO
结构中,在STARTF_USESHOWWINDOW
成员中设置dwFlags
标记,并将wShowWindow
设置为SW_HIDE
。
答案 1 :(得分:0)
您必须重定向输出。有一个成员hStdOutput
和hStdError
应该被重定向。 Here on MSDN就是一个例子。