As Hans said, WindowStyle is a recommendation passed to the process, the application can choose to ignore it.
CreateNoWindow controls how the console works for the child process, but it doesn't work alone.
CreateNoWindow works in conjunction with UseShellExecute as follows:
To run the process without any window:
ProcessStartInfo info = new ProcessStartInfo(fileName, arg);
info.CreateNoWindow = true;
info.UseShellExecute = false;
Process processChild = Process.Start(info);
To run the child process in its own window (new console)
ProcessStartInfo info = new ProcessStartInfo(fileName, arg);
info.UseShellExecute = true; // which is the default value.
Process processChild = Process.Start(info); // separate window
To run the child process in the parent's console window
ProcessStartInfo info = new ProcessStartInfo(fileName, arg);
info.UseShellExecute = false; // causes consoles to share window
Process processChild = Process.Start(info);
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…