기본 콘텐츠로 건너뛰기

라벨이 Process인 게시물 표시

[ TIPS ] 프로세스 검증 및 동일 경로 확인하기.

  진행 중인 프로젝트에서 동일 경로에 존재하는 동일한 어플리케이션이 중복 실행이 되지 않도록 하여야 하는 요구가 들어와서 프로세스를 검증하는 로직을 구성하였다. 아래의 예제에서는 자체적으로 구성한 프레임워크를 사용하는 것도 포함되어 있으므로 해당하는 구문은 알아서 전환 처리해야 한다. Process 가져오기   실행 중인 프로세스들은 다음과 같은 명령을 사용해서 동일한 명칭을 가지는 프로세스들을 가져온다. Process [] processes = Process .GetProcessByName( Path .GetFileNameWithoutExtension( AppContext .ApplicationName)); 현재 Process 를 제외한 나머지 검증   프로세스의 이름이 동일하기 때문에 현재 자신의 프로세스도 포함이 된다. 따라서 아래와 같이 자신을 제외한 것들을 대상으로 하여야 한다. Process [] processes = Process .GetProcessByName( Path .GetFileNameWithoutExtension( AppContext .ApplicationName)); foreach ( Process p in processes) { // 자기 자신 검증. if ( Process .GetCurrentProcess().Id != p.Id) { . .. } } }   이제 작업 경로를 비교하여 동일한 경로에 속한 것만 중복 메시지로 처리한다. Process [] processes = Process .GetProcessByName( Path .GetFileNameWithoutExtension( AppContext .ApplicationName)); foreach ( Process p in processes) { // 자기 자신 검증. if ( Process .GetCurrentProcess().Id != p.Id) {