본문 바로가기
Programming/Unity

[Unity] C# 외부 프로세스(프로그램) 조회 및 실행, 종료 - args 매개변수 전달

by 타임박스 2020. 12. 4.
반응형

Unity에서 (어차피 C#에서 제공되는 기능) 다른 프로세스(프로그램)을 실행을 하는 경우가 종종있다.

그리고 다른 프로세스를 실행하면서 매개변수를 던질 수 있다.

 

● 프로세스 동작 확인

현재 해당 프로세스가 동작하고 있는지를 검색한다.

using DI = System.Diagnostics 의 별칭을 지정하여 사용하였다.

System.Diagnostics에도 Debug API가 존재하므로 Unity의 Debug사용시 불편해서 별칭사용을 추천.

프로세스 리스트 얻는 방법은 다음과 같다. 

using DI = System.Diagnostics;

//노트패드 프로세스 얻어오기
processList = DI.Process.GetProcessesByName("Notepad++");
if(processList.Length > 0)
{
     //프로세스가 1개이상 동작중..
}
else
{
     //실행된 프로세스 없음
}

 

● 프로세스 실행 ( 파라미터 전달 , 파라미터 여러개 전달)

위 코드에서 프로세스 동작확인을 하고 현재 동작하고 있는 프로세스가 없다면 프로세스를 실행한다.

//매개 변수 0
Process.Start(@"C:\Program Files (x86)\Notepad++.exe");

//매개변수 1개 전달 > arg1
Process.Start(@"C:\Program Files (x86)\Notepad++.exe", "arg1");

//매개변수 여러개 전달 > arg1, arg2, arg3
Process.Start(@"C:\Program Files (x86)\Notepad++.exe", "arg1 arg2 arg3");

 

● 프로세스 종료

foreach(Process process in Process.GetProcesses())
{
    if (process.ProcessName.StartsWith("Notepad++"))
    {
        process.Kill();
    }
}

 

감사합니다.

반응형

댓글