[C#/WINFORM] Process 클래스 : BeginOutputReadLine 메소드를 사용해 도스 명령 실행 결과 구하기
C#/WinForm 2019. 10. 19. 00:41728x90
반응형
728x170
▶ MainForm.cs
using System;
using System.Diagnostics;
using System.Text;
using System.Windows.Forms;
namespace TestProject
{
/// <summary>
/// 메인 폼
/// </summary>
public partial class MainForm : Form
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Field
////////////////////////////////////////////////////////////////////////////////////////// Private
#region Field
/// <summary>
/// 결과 문자열 빌더
/// </summary>
private StringBuilder resultStringBuilder = new StringBuilder();
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 생성자 - MainForm()
/// <summary>
/// 생성자
/// </summary>
public MainForm()
{
InitializeComponent();
this.runButton.Click += runButton_Click;
}
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Private
//////////////////////////////////////////////////////////////////////////////// Event
#region 프로세스 출력 데이터 수신시 처리하기 - process_OutputDataReceived(sender, e)
/// <summary>
/// 프로세스 출력 데이터 수신시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void process_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
this.resultStringBuilder.AppendLine(e.Data);
}
#endregion
#region 실행 버튼 클릭시 처리하기 - runButton_Click(sender, e)
/// <summary>
/// 실행 버튼 클릭시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void runButton_Click(object sender, EventArgs e)
{
this.resultStringBuilder.Clear();
string dosCommand = this.dosCommandTextBox.Text.Trim();
Process process = GetProcess(dosCommand);
process.OutputDataReceived += process_OutputDataReceived;
process.Start();
process.BeginOutputReadLine();
process.WaitForExit();
this.resultTextBox.Text = this.resultStringBuilder.ToString();
}
#endregion
//////////////////////////////////////////////////////////////////////////////// Function
#region 프로세스 구하기 - GetProcess(dosCommand)
/// <summary>
/// 프로세스 구하기
/// </summary>
/// <param name="dosCommand">DOS 명령</param>
/// <returns>프로세스</returns>
private Process GetProcess(string dosCommand)
{
Process process = new Process();
process.EnableRaisingEvents = true;
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.Arguments = string.Format("/C {0}", dosCommand);
process.StartInfo.WindowStyle = ProcessWindowStyle.Minimized;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
return process;
}
#endregion
}
}
728x90
반응형
그리드형(광고전용)
'C# > WinForm' 카테고리의 다른 글
[C#/WINFORM] Label 클래스 : 외곽선 텍스트 사용하기 (0) | 2019.12.27 |
---|---|
[C#/WINFORM] WebBrowser 클래스 : DocumentText 속성을 사용해 HTML 문자열 설정하기 (0) | 2019.12.26 |
[C#/WINFORM] 스캔 이미지 왜곡 자동 보정하기 (0) | 2019.12.24 |
[C#/WINFORM] Bitmap 클래스 : 비트맵 회전하기 (0) | 2019.12.23 |
[C#/WINFORM] Form 클래스 : 마우스 위치에 따라 폼 불투명도 변경하기 (0) | 2019.11.29 |
[C#/WINFORM] Process 클래스 : BeginOutputReadLine 메소드를 사용해 도스 명령 실행 결과 구하기 (0) | 2019.10.19 |
[C#/WINFORM] TreeView 클래스 : 드래그 & 드롭 사용하기 (0) | 2019.10.03 |
[C#/WINFORM] TreeView 클래스 : 첫번째 종말 노드 구하기 (0) | 2019.09.15 |
[C#/WINFORM] TreeView 클래스 : 특정 레벨까지 노드 확장하기 (0) | 2019.09.15 |
[C#/WINFORM] UserControl 클래스 : 환형 진행바 사용하기 (0) | 2019.08.31 |
[C#/WINFORM] Bitmap 클래스 : 투명 배경 비트맵 구하기 (0) | 2019.08.30 |
댓글을 달아 주세요