在我正在处理的应用程序中,一切都很好。我的问题是,有没有办法在执行psexec时压缩命令窗口?我想让它静静地运行。下面是我正在使用的代码..我在网上阅读了很多例子,但似乎没有任何工作。思考?谢谢。
Process p = new Process();
try
{
p.StartInfo.UseShellExecute = false;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.RedirectStandardInput = true;
p = Process.Start(psExec, psArguments);
if (p != null)
{
string output = p.StandardOutput.ReadToEnd();
string error = p.StandardError.ReadToEnd();
p.WaitForExit();
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
if (p != null)
{
p.Dispose();
}
}
答案 0 :(得分:4)
您在再次实际分配p变量之前设置了StartInfo,您的代码必须如下所示:
...
ProcessStartInfo startinfo = new ProcessStartInfo(psExec, psArguments);
startinfo.UseShellExecute = false;
startinfo.CreateNoWindow = true;
startinfo.WindowStyle = ProcessWindowStyle.Hidden;
startinfo.RedirectStandardOutput = true;
startinfo.RedirectStandardError = true;
startinfo.RedirectStandardInput = true;
p = Process.Start(startinfo);
...