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());
}