首頁 > 後端開發 > C++ > 如何實時捕獲.NET應用程序的控制台輸出?

如何實時捕獲.NET應用程序的控制台輸出?

Linda Hamilton
發布: 2025-01-29 12:36:10
原創
1012 人瀏覽過

How Can I Capture Console Output from a .NET Application in Real Time?

實時捕獲.NET應用程序(C#)的控制台輸出

從.NET應用程序調用外部進程時,捕獲其控制台輸出對於監控其進度和訪問其結果至關重要。 .NET框架提供了一種便捷的機制來實現此目的,利用ProcessStartInfo.RedirectStandardOutput屬性。

要實時捕獲控制台輸出,無需中間文件存儲,請按照以下步驟操作:

  1. 創建Process對象: 此對象代表要調用的外部控制台應用程序。
  2. 配置FileName和Arguments屬性: 指定可執行文件路徑和啟動應用程序的參數。
  3. 將UseShellExecute設置為false: 禁用shell執行,以便更精細地控制進程。
  4. 啟用RedirectStandardOutput: 將此屬性設置為true,以便將應用程序的標準輸出重定向到當前.NET進程。
  5. 啟動進程: 調用Process.Start()方法啟動應用程序。
  6. 接收輸出: 使用Process.StandardOutput.ReadToEnd()方法檢索應用程序生成的所有輸出。

這種方法允許您實時監控外部控制台應用程序的進度和結果,而不會中斷其執行或使操作系統充斥臨時文件。

代碼示例:

<code class="language-csharp">Process compiler = new Process();
compiler.StartInfo.FileName = "csc.exe";
compiler.StartInfo.Arguments = "/r:System.dll /out:sample.exe stdstr.cs";
compiler.StartInfo.UseShellExecute = false;
compiler.StartInfo.RedirectStandardOutput = true;
compiler.Start();

string output = compiler.StandardOutput.ReadToEnd();
Console.WriteLine(output);

compiler.WaitForExit();</code>
登入後複製

以上是如何實時捕獲.NET應用程序的控制台輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板