C++ Executing CMD Commands

c++, cmd, winapi, windows, windows-console

Solution

Redirecting the output to your own pipe is a tidier solution because it avoids creating the output file, but this works fine:

ShellExecute(0, "open", "cmd.exe", "/C ipconfig > out.txt", 0, SW_HIDE);

You don't see the cmd window and the output is redirected as expected.

Your code is probably failing (apart from the `/C` thing) because you specify the path as `"c:\projects\b"` rather than `"c:\\projects\\b"`.

Problem

I'm having a serious problem here. I need to execute a CMD command line via C++ without the console window displaying. Therefore I cannot use `system(cmd)`, since the window will display. I have tried `winExec(cmd, SW_HIDE)`, but this does not work either. `CreateProcess` is another one I tried. However, this is for running programs or batch files. I have ended up trying `ShellExecute`: ``` ShellExecute( NULL, "open", "cmd.exe", "ipconfig > myfile.txt", "c:\projects\b", SW_SHOWNORMAL ); ``` Can anyone see anything wrong with the above code? I have used `SW_SHOWNORMAL` until I know this works. I really need some help with this. Nothing has come to light, and I have been trying for quite a while. Any advice anyone could give would be great :)

Original source