[C#] Restart program with arguments (프로그램 다시 시작하기, 인수 사용)

C#에서 'Restart program with arguments'에 대해 찾고 계신가요? 다음 코드는 Process Start Info 클래스를 사용하여 프로그램을 다시 실행할 때에 인수를 사용하는 예제 자료입니다. 

  • 현재 실행 파일을 새로운 프로세스로 시작하고 이후에 현재 프로세스를 종료할 것입니다.
  • Application.ExecutablePath를 사용하여 현재 실행 파일의 경로를 얻을 수 있습니다. (어플리케이션의 실행 파일 경로 획득)

ProcessStartInfo processStartInfo = new ProcessStartInfo();
processStartInfo.Arguments = "args0 args1";
processStartInfo.FileName = Application.ExecutablePath;
Process.Start(processStartInfo);
Application.Exit();

위의 예제에서 Arguments 속성에 "args0 args1";와 같이 인수집합을 설정하였습니다. 인수의 구분은 '스페이스'로 하며 인수가 필요 없는 경우 생략하여도 무방합니다. 해당 값은 애플리케이션을 시작할 때 사용할 명령줄 인수 집합을 설정할 것이며, 아래의 Main 메서드에서 string 배열로 인수를 확인할 수 있답니다. 다음은 인자를 반복하여 어떠한 값을 인수로 설정하였는지 확인하는 간단한 예제를 준비해 보았습니다.

[STAThread]
static void Main(string[] args)
{
    string msg = string.Empty;
    for (int i = 0; i < args.Length; i++)
    {
        if (msg != string.Empty)
            msg += ", ";
        msg += $"{i} : ({args[i]})";
    }
    if (msg != string.Empty)
        MessageBox.Show(msg);

    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new BeomSang());
}
댓글 쓰기
가져가실 때, 출처 표시 부탁드려요! 감사합니다. 💗