C#에서 프로세스 시작
-
C#
의 프로세스란 -
Process.Start
를 사용하여C#
에서 프로세스 시작 -
ProcessStartInfo
를 사용하여C#
에서 프로세스 시작 -
Process.GetProcesses
를 사용하여C#
에서 프로세스 시작 -
Process.GetProcessesByName
을 사용하여C#
에서 프로세스 시작 -
StandardOutput
을 사용하여C#
에서 프로세스 시작 -
Process.Kill
을 사용하여C#
에서 프로세스 중지
이 기사에서는 C#에서 프로세스를 시작하는 다양한 방법을 살펴봅니다.
C#
의 프로세스란
프로세스
를 통해 개발자는 로컬 및 원격 프로세스에 액세스하고 로컬 시스템 프로세스를 시작 및 종료할 수 있습니다.
ProcessStartInfo
는 ‘프로세스’가 시작될 때 활용되는 값 모음을 정의합니다. Process
클래스는 System.Diagnostics
네임스페이스에 있습니다.
Process.Start
를 사용하여 C#
에서 프로세스 시작
Process.Start
로 프로세스를 시작하려면 다음 단계를 따르십시오.
아래 라이브러리를 가져옵니다.
using System;
using System.Diagnostics;
Main
클래스를 만들고 Main
클래스 내부에 프로세스 시작을 위한 이 코드를 작성합니다(실행하려는 프로그램, URL 또는 파일 지정).
Process.Start(@"C:\Users\Shani\Desktop\process.txt");
소스 코드:
using System;
using System.Diagnostics;
class ProcesswithProcessStart {
public static void Main() {
Process.Start(@"C:\Users\Shani\Desktop\process.txt");
Console.WriteLine("Done");
}
}
Start
기능은 프로세스를 시작하는 데 사용됩니다. ProcesswithProcessStart
클래스를 실행한 후 이 출력을 얻습니다.
ProcessStartInfo
를 사용하여 C#
에서 프로세스 시작
모든 실행 파일을 실행할 수 있습니다. 그러나 ProcessStartInfo
의 속성이 필요할 수 있습니다.
아래 단계에 따라 ProcessStartInfo
방법을 사용하여 프로세스를 시작하십시오.
아래 라이브러리를 가져옵니다.
using System;
using System.Diagnostics;
StartInfo.FileName
속성은 시작할 프로그램 또는 문서를 지정합니다. Microsoft Word 프로그램을 예로 사용하겠습니다. 기본적인 텍스트 편집기이자 작가입니다.
process.StartInfo.FileName = "WINWORD.EXE";
파일 이름은 StartInfo.Arguments
에 매개변수로 전달됩니다. 여기에서 process.docx
라는 단어 파일을 시작합니다.
process.StartInfo.Arguments = @"C:\Users\Shani\Desktop\process.docx";
소스 코드:
using System;
using System.Diagnostics;
Process process = new Process();
process.StartInfo.FileName = "WINWORD.EXE";
process.StartInfo.Arguments = @"C:\Users\Shani\Desktop\process.docx";
process.Start();
출력:
Process.GetProcesses
를 사용하여 C#
에서 프로세스 시작
Process.GetProcesses
메소드는 기존 프로세스 리소스에 연결된 새로운 Process
구성 요소 목록을 생성합니다.
아래 라이브러리를 가져옵니다.
using System;
using System.Diagnostics;
이 코드는 모든 프로세스의 목록을 생성합니다.
Process[] LinkedProcesses = Process.GetProcesses();
그 다음, 우리는 일련의 프로세스를 얻습니다.
Array.ForEach(LinkedProcesses, (process) => {
Console.WriteLine("Process: {0} Id: {1}", process.ProcessName, process.Id);
});
ReadKey()
함수는 화면을 유지합니다.
Console.ReadKey();
소스 코드:
using System;
using System.Diagnostics;
Process[] LinkedProcesses = Process.GetProcesses();
Array.ForEach(LinkedProcesses, (process) => {
Console.WriteLine("Process: {0} Id: {1}", process.ProcessName, process.Id);
});
Console.ReadKey();
출력:
Process.GetProcessesByName
을 사용하여 C#
에서 프로세스 시작
Process.GetProcessesByName
메소드는 새로운 Process
구성 요소의 배열을 생성하고 제공된 프로세스와 동일한 이름을 가진 기존 프로세스 리소스와 연관시킵니다.
아래 라이브러리를 가져옵니다.
using System;
using System.Diagnostics;
Internet Download Manager와 관련된 모든 프로세스는 예제에서 생성됩니다. 해당 ID와 프로세스 이름이 생성됩니다.
Process[] LinkedProcesses = Process.GetProcessesByName("InternetDownloadManager");
사용자는 이름이 IDM
인 프로세스 목록을 얻습니다.
Console.WriteLine("{0} IDM LinkedProcesses", LinkedProcesses.Length);
함수에서 반환된 모든 프로세스에 액세스하기 위해 foreach
루프를 사용합니다.
각 프로세스의 ID에 액세스합니다. 마지막으로 발견된 총 프로세스 수를 표시합니다.
Array.ForEach(LinkedProcesses, (process) => {
Console.WriteLine("Process: {0} Id: {1}", process.ProcessName, process.Id);
});
소스 코드:
using System;
using System.Diagnostics;
Process[] LinkedProcesses = Process.GetProcessesByName("InternetDownloadManager");
Console.WriteLine("{0} IDM LinkedProcesses", LinkedProcesses.Length);
Array.ForEach(LinkedProcesses, (process) => {
Console.WriteLine("Process: {0} Id: {1}", process.ProcessName, process.Id);
});
Console.ReadKey();
출력:
StandardOutput
을 사용하여 C#
에서 프로세스 시작
StandardOutput
속성은 애플리케이션의 텍스트 기반 출력을 읽는 데 사용할 수 있는 경로를 반환합니다.
이 속성을 사용하여 표준 프로세스 출력을 리디렉션할 수 있습니다(ProcessStartInfo
에서 사용 가능). 한 프로그램의 출력을 다른 프로그램에서 관찰할 수 있습니다.
아래 라이브러리를 가져옵니다.
using System;
using System.Diagnostics;
using System.IO;
여기서 출력하려는 프로세스의 이름을 지정합니다.
Prs.StartInfo.FileName = "ipconfig.exe";
UseShellExecute
를 false로 설정하여 입력, 출력 및 오류 스트림을 리디렉션할 수 있습니다.
Prs.StartInfo.UseShellExecute = false;
Prs.StartInfo.RedirectStandardOutput = true;
이 코드는 귀하가 제공한 정보를 사용하여 프로세스를 시작합니다.
Prs.Start();
표준 출력의 경우 StreamReader
를 얻습니다.
StreamReader sr = Prs.StandardOutput;
ReadToEnd()
함수는 모든 데이터를 읽는 데 사용됩니다.
string dataoutput = sr.ReadToEnd();
ReadKey()
는 출력을 표시하기 위해 화면을 유지합니다.
Console.ReadKey();
소스 코드:
using System;
using System.Diagnostics;
using System.IO;
class StandarOutput {
public static void Main() {
using (Process Prs = new Process()) {
Prs.StartInfo.FileName = "ipconfig.exe";
Prs.StartInfo.UseShellExecute = false;
Prs.StartInfo.RedirectStandardOutput = true;
Prs.Start();
StreamReader sr = Prs.StandardOutput;
string dataoutput = sr.ReadToEnd();
Console.WriteLine(dataoutput);
Console.ReadKey();
}
}
}
출력:
Process.Kill
을 사용하여 C#
에서 프로세스 중지
다음 예제에서는 프로그램을 시작한 다음 몇 초 후에 프로그램을 종료합니다.
아래 라이브러리를 가져옵니다.
using System;
using System.Diagnostics;
using System.Threading;
Thread.Sleep(5000)
을 사용하여 프로세스는 메모장을 시작하고 3초 후에 종료합니다.
Thread.Sleep(5000);
Kill()
함수는 프로세스를 종료하는 데 사용됩니다.
process.Kill();
소스 코드:
using System;
using System.Diagnostics;
using System.Threading;
class KillProcess {
public static void Main() {
Process process = Process.Start("notepad.exe");
Thread.Sleep(1000);
process.Kill();
}
}
I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.
LinkedIn