使用 System.Diagnostics.Process 类在远程计算机上创建进程时,可能需要阻止控制台窗口的显示。但是,设置 CreateNoWindow 和 WindowStyle 属性可能并不总是足够。
一种可能的解决方案源于 UseShellExecute 属性和上述设置之间的交互。根据 MSDN 文档:
如果 UseShellExecute 属性为 true 或 UserName 和 Password 属性不为空,则忽略 CreateNoWindow 属性值并创建一个新窗口。
因此,请确保UseShellExecute 设置为 false 对于有效的窗口抑制至关重要。以下代码示例演示了这种方法:
ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.FileName = fullPath; startInfo.Arguments = args; startInfo.RedirectStandardOutput = true; startInfo.RedirectStandardError = true; startInfo.UseShellExecute = false; startInfo.CreateNoWindow = true; Process processTemp = new Process(); processTemp.StartInfo = startInfo; processTemp.EnableRaisingEvents = true; try { processTemp.Start(); } catch (Exception e) { throw; }
以上是C#启动进程时如何隐藏控制台窗口?的详细内容。更多信息请关注PHP中文网其他相关文章!