c# - Process.start:如何获得输出?

标签 c# .net mono process.start

我想从我的 Mono/.NET 应用程序运行外部命令行程序。 例如,我想运行 mencoder。是否可能:

  1. 获取命令行 shell 输出,并将其写在我的文本框中?
  2. 要获取数值以显示耗时的进度条?

最佳答案

当您创建 Process 对象时,适本地设置 StartInfo:

var proc = new Process 
{
    StartInfo = new ProcessStartInfo
    {
        FileName = "program.exe",
        Arguments = "command line arguments to your executable",
        UseShellExecute = false,
        RedirectStandardOutput = true,
        CreateNoWindow = true
    }
};

然后启动进程并从中读取:

proc.Start();
while (!proc.StandardOutput.EndOfStream)
{
    string line = proc.StandardOutput.ReadLine();
    // do something with line
}

您可以使用 int.Parse()int.TryParse() 将字符串转换为数值。如果您读取的字符串中存在无效数字字符,您可能需要先进行一些字符串操作。

关于c# - Process.start:如何获得输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4291912/

相关文章:

tcp - ZeroConf 的服务类型

javascript - 如何使用 C# 代码添加 Html Audio 元素

c# - HttpClient 解码编码的 Url?

c# - LoadFromContext 发生

.net - 通过文件而不是程序集的项目依赖

c# - CaSTLe Windsor 在组件已注册后使用选择器应用拦截器

android - Android 单声道 : Map Balloons for Mono

c# - 未处理时调用 Form 的 Invoke 时出现 ObjectDisposedException

c# - 使用 Roslyn(csc.exe) 以 .NET 3.5 为目标时手动编译 C#

c# - TransformXml 任务在 linux 上使用 mono 通过 msbuild 失败