我正在通过system("start /B mybatch.bat")
调用来执行C++程序中的批处理文件,其中/B
应该运行批处理文件而不是控制台窗口。但它仍然可见。如何从C/C++ w/o控制台窗口执行批处理文件?
编辑:我决心在ShellExecute()
的问题作为意见提出
我正在通过system("start /B mybatch.bat")
调用来执行C++程序中的批处理文件,其中/B
应该运行批处理文件而不是控制台窗口。但它仍然可见。如何从C/C++ w/o控制台窗口执行批处理文件?
编辑:我决心在ShellExecute()
的问题作为意见提出
你为什么不使用CreateProcess的呢?
在Windows上,如果您不使用Windows运行时,您可以尝试_popen
或_wpopen
:MSDN。
我使用它主要是因为_popen
创建一个管道,所以我可以很容易地读取输出。
或[ShellExecute](http://msdn.microsoft.com/en-us/library/bb762153 \(v = vs.85 \).aspx)可能更简单。 – user786653
@user:'ShellExecute'不允许你传递一个'STARTUPINFO'结构,它允许隐藏窗口。 –
@本Voigt:它确实有'nShowCmd'。我不知道这是否可以用于OP,但我认为替代功能值得一提。 – user786653