Questions tagged «processstartinfo»

22
ProcessStartInfo挂在“ WaitForExit”上吗?为什么?
我有以下代码: info = new System.Diagnostics.ProcessStartInfo("TheProgram.exe", String.Join(" ", args)); info.CreateNoWindow = true; info.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; info.RedirectStandardOutput = true; info.UseShellExecute = false; System.Diagnostics.Process p = System.Diagnostics.Process.Start(info); p.WaitForExit(); Console.WriteLine(p.StandardOutput.ReadToEnd()); //need the StandardOutput contents 我知道我正在启动的进程的输出大约7MB长。在Windows控制台中运行它可以正常工作。不幸的是,它以编程方式无限期地挂在WaitForExit上。还要注意,对于较小的输出(如3KB),此代码不会挂起。 ProcessStartInfo中的内部StandardOutput是否可能无法缓冲7MB?如果是这样,我应该怎么做呢?如果没有,我在做什么错?

12
在C#中执行批处理文件
我正在尝试在C#中执行批处理文件,但是这样做并没有任何运气。 我已经在互联网上找到了许多这样做的例子,但是它对我来说不起作用。 public void ExecuteCommand(string command) { int ExitCode; ProcessStartInfo ProcessInfo; Process Process; ProcessInfo = new ProcessStartInfo("cmd.exe", "/c " + command); ProcessInfo.CreateNoWindow = true; ProcessInfo.UseShellExecute = false; Process = Process.Start(ProcessInfo); Process.WaitForExit(); ExitCode = Process.ExitCode; Process.Close(); MessageBox.Show("ExitCode: " + ExitCode.ToString(), "ExecuteCommand"); } 命令字符串包含批处理文件的名称(存储在中system32)和它应处理的一些文件。(例如:)txtmanipulator file1.txt file2.txt file3.txt。当我手动执行批处理文件时,它可以正常工作。 执行代码时,它给了我一个 **ExitCode: 1** (Catch all …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.