我正在通過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