在远程进程创建期间抑制控制台窗口可见性
使用 System.Diagnostics.Process 远程执行命令时,用户可能会遇到以下问题:可见的控制台窗口扰乱了他们的工作流程。尽管将 CreateNoWindow 和 WindowStyle 等属性设置为 Hidden,控制台窗口仍然出现。
要消除此问题,确保 UseShellExecute 属性设置为 false 至关重要。正如 MSDN 所解释的,如果 UseShellExecute 设置为 true 或者任何 UserName 或 Password 属性不为空,CreateNoWindow 将被忽略,从而导致显示一个新窗口。
要更正此行为,请使用以下代码片段:
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; }
通过将 UseShellExecute 设置为 false,将遵守 CreateNoWindow,确保在远程进程时不显示控制台窗口执行。
以上是如何在启动远程进程时防止控制台窗口可见?的详细内容。更多信息请关注PHP中文网其他相关文章!