[C#] 콘솔 프로그램 백그라운드(창 없이) 실행 방법Language/C#2023. 8. 31. 17:24
Table of Contents
반응형
일반적으로 C#에서 외부 프로그램(.exe 등)을 실행시킬 때 Process
를 많이 사용합니다. 콘솔(Console; 도스 커맨드 창)로 실행되는 프로그램을 실행하는 경우 콘솔 창이 화면에 나타나서 UI 상으로 불편한 경우가 있습니다.
이 글에서는 Process
로 콘솔 창을 띄우는 외부 프로그램을 실행 시 콘솔 창을 백그라운드로 실행해 보이지 않도록 하는 방법에 대해 살펴보겠습니다.
코드는 아래와 같습니다.
using System;
using System.Diagnostics;
namespace Test.Utils
{
public class Program
{
public static void Main(string[] args)
{
string arg = "...";
Process process = new Process();
process.StartInfo.FileName = @".\ffmpeg.exe";
process.StartInfo.Arguments = arg;
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; // 윈도우 속성을 windows hidden 으로 지정
process.StartInfo.CreateNoWindow = true; // hidden 을 시키기 위해서 이 속성도 true 로 체크해야 함
process.Start();
process.WaitForExit(); // 종료시까지 대기
}
}
}
추가로 외부 프로그램에서 출력한 값을 읽어와서 출력하는 방법은 아래와 같습니다.
using System;
using System.Diagnostics;
namespace Test.Utils
{
public class Program
{
public static void Main(string[] args)
{
string arg = "...";
Process process = new Process();
process.StartInfo.FileName = @".\ffmpeg.exe";
process.StartInfo.Arguments = arg;
process.StartInfo.UseShellExecute = false; // 스트림을 읽는데 필요
process.StartInfo.CreateNoWindow = false;
process.StartInfo.RedirectStandardOutput = true; // 실행한 프로그램의 출력을 얻는다.
process.Start();
process.WaitForExit(); // 종료시까지 대기
string result = process.StandardOutput.ReadToEnd(); // 실행한 프로그램의 출력을 읽는다.
Console.WriteLine("result => " + result);
}
}
}
반응형
'Language > C#' 카테고리의 다른 글
[.NET Core] 코드 예제를 통해 멀티스레딩 마스터하기 (0) | 2023.12.01 |
---|---|
[.NET Core] RabbitMQ 사용 가이드 (0) | 2023.11.17 |
.NET Core에서 Swagger를 사용하는 방법 (0) | 2023.10.31 |
C# and .NET Core 멀티스레딩(multithreading) (0) | 2023.09.05 |
[C#] FileSystemWatcher 파일 감시 모니터링 (0) | 2023.08.27 |
@고지니어스 :: 규니의 개발 블로그
IT 기술과 개발 내용을 포스팅하는 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!