본문 바로가기
개발 이야기/C# 이야기

C# 윈도우 프로세스 실행매개변수

by 런던살자 2020. 10. 22.

안녕하세요 마블랑입니다.

 

C언어를 처음 배울때 임베디드를 한다고 리눅스에서 C언어를 배웠었습니다.

 

C언어로 프로세스를 만든다음에 항상 매개변수를 넣어줘서 소켓통신 IP나 Port, 또는 파일명 심지어 파이프에서 전송할 데이터를 입력을 해줬었습니다.

 

./Add 1 2 3

Result : 6 

 

이런식을 매개변수를 넣어주고 결과를 출력하고 했었습니다.

 

콘솔 커맨드라인에서는 이런식으로 프로세스가 실행될때 매개변수를 넣어주지만 윈도우 프로그램은 더블클릭하면 실행이 되기때문에 어떻게 매개변수를 주고 입력된 매개변수를 어떻게 처리해야되는지 몰랐었습니다.

 

그래서 이번에는 윈도우 프로세스에서 매개변수를 처리하는 방법에 대해서 알아보았습니다.

 

우선 WPF 프로세스를 사용해서 매개변수를 처리해보겠습니다. Winform(원폼)도 다르지 않을거라 생각이 드네요

 

프로젝트에 App.xaml을 더블클릭하여 열어줍니다.

 

그리고 속성창에서 이름 옆에 번개모양 표시를 눌러 이벤트를 추가하는데요 

 

맨 밑으로 가면 StartUp이라는 이벤트가 있습니다.

 

이 이벤트를 더블클릭해서 추가해주세요

 

그렇게 더블클릭하면 Startup 이라는 이벤트가 추가가 됩니다.

 

이벤트 안에 코드를 작성하기 전에 일단 아래 화면에 보이는 StartupUri를 지워주세요

 

아래 화면처럼 드래그 한 부분을 모두 지우면 됩니다.

 

StartUp 이벤트의 매개변수 StartUpEventArgs e 안에 매개변수 배열이 들어있습니다.

 

아래 화면에 주석 처리된 부분을 보는 것처럼 입력된 매개변수가 인덱스 0,1,2,... 로 들어옵니다.

 

그럼 메인 윈도우에 매개변수를 넘겨주겠습니다.

 

여기서는 MainWindow를 어플리케이션이 실행될때 기본적으로 실행해주지만 다른 윈도우를 띄우고 싶다면 해당 윈도우를 띄워주면 됩니다. 

 

매개변수를 여러가지 변수로 메인 윈도우에 넘겨주었습니다.

 

메인윈도우에서는 다른 윈도우들과 마찬가지로 매개변수를 받아서 처리하면 윈도우 프로그램에서 입력 매개변수를 처리할수 있게 됩니다. 

 

다른 정보를 드리면 비주얼스튜디오에서 디버그 시에 매개변수를 넣어주려면 아래와 같이 속성창에서 디버그 탭, 명령줄 인수에 매개변수마다 한칸씩 공백으로 구분하여 넣어주면 됩니다.

매개변수를 Startup에서 받아와 메인으로 넘길때 실수로 매개변수의 개수가 맞지 않다면 인덱스 에러가 나므로 주의하세요~

 

 

이전에 했던 포스팅중에서 프로그램 단독으로 실행될때 매개변수를 지정하는 방법이 있어서 링크를 추가해두었습니다.

 

다른 프로세스에서 해당 프로세스에 매개변수를 주고 실행하는 방법은 Process 클래스에서 프로세스를 실행할때 매개변수 인자를 넣어주면 됩니다~

 

2019/12/09 - [누룽지] - Window 실행파일 매개변수 추가 (League of Legends 유럽, 북미서버 한글화)

 

Window 실행파일 매개변수 추가 (League of Legends 유럽, 북미서버 한글화)

안녕하세요 마블랑입니다. 10년전에 출시하여 현재 AOS 장르의 1위 게임으로 유명한 리그 오브 레전드 한국에서뿐만 아니라 해외에서도 많이 즐기고 있다는데요 그래서 그런지 유럽서버와 북미

sosobaba.tistory.com

 

 

 

이상 마블랑이었습니다.

 

읽어주어서 고맙습니다.

댓글