このガイドは、Windowsフォームのコントロール内で
からリアルタイムコマンド出力をキャプチャして表示する方法を示しています。
CMD.exe
プロセスでは、コマンドを実行して、出力を行ごとに処理し、フォームコントロールを動的に更新します。 ステップ:
またはメソッドに渡されます。
Exec.Run()
Exec.GetOutput()
コマンドの実行:
コマンドは、は、ストリーミング出力を処理するためのパラメーターとしてデリゲートを要求します。 バックグラウンド実行のために、のパラメーターをに設定する必要があります。
Exec.Run()
Exec.GetOutput()
Exec.Run()
noshow
出力ディスプレイ:Exec.Run()
代表者の方法内:true
チェック。 の場合は、
を使用して、txt.InvokeRequired
iftrue
isInvoke()
(DelegateがすでにUIスレッドにあることを意味します)、MethodInvoker
コントロールを直接更新します。
txt
txt.InvokeRequired
false
txt
エラー処理:
コマンド実行中に潜在的な例外を優雅に管理するために、エラー処理(例:<code class="language-csharp">using Exec; using System.Windows.Forms; public partial class Form1 : Form { private void btnExecute_Click(object sender, EventArgs e) { // Access TextBox control (assuming it's named 'txtOutput') TextBox txt = txtOutput; // Replace txtOutput with your TextBox's name // Delegate to handle each line of output OutputHandler outputHandler = line => { if (txt.InvokeRequired) { txt.Invoke(new MethodInvoker(() => txt.AppendText(line))); } else { txt.AppendText(line); } }; // Execute command (replace with your command and path) Exec.Run(@"C:\Windows\System32\cmd.exe", "/c dir", null, outputHandler, true); // noshow = true for background execution } }</code>
同時コマンド:複数のコマンドを同時に実行する場合、混乱を避けるために各コマンドの出力がデリゲート内で明確に識別されることを確認します。 これには、コマンド固有のデータを代表者に渡すことが含まれる場合があります 効率のための
try-catch
この改良された説明は、Windowsフォームアプリケーションでリアルタイムコマンド出力表示を達成するためのより簡潔で明確なガイドを提供します。 プレースホルダー名(以上がWindowsフォームコントロールにリアルタイムコマンド出力を表示するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。