본문 바로가기

old drawer/C, C++, MFC

[MFC] MFC로 외부프로그램 실행 해보기! ShellExecute()

MFC로 외부프로그램 실행 해보기!

 

MFC ShellExecute 함수를 이용하여 실행 하는 프로그램 만드는 예제입니다.

 

 

위 스냅샷은 실행 결과입니다.

아무파일이나 선택하구 실행하기 버튼을 누르면 그에 맞는 프로그램으로 실행이됩니다.

결과가 궁금하시면 첨부 file을 직접 down 받아 실행해보시기 바랍니다.

 


 

ShellExecute 함수원형

 

HINSTANCE ShellExecute(
  HWND hwnd,
  LPCTSTR lpFile,
  LPCTSTR lpParameters,
  LPCTSTR lpDirectory,
  INT nShowCmd
);

 

윈도우 탐색기에서 해당 파일을 더블 클릭한 것과 완벽하게 일치하는 동작을 하는 함수

 

Hwnd : 부모 윈도우의 핸들이며, 이 값이 NULL이므로 부모 윈도우는 바탕화면이 됩니다.

lpOperation : 함수가 어떤 동작을 할 것인지 명시

lpFile : 인자로 전달 받은 파일을 실행. 실행 파일이 아닐 경우 레지스트리의 내용을 참조하여

           연결 프로그램을 실행하여 내용을 보여줌.

lpParameters : lpFile 인자가 실행 파일인 경우 실행할 파일의   실행 인자를 명시.

lpDirectiory : 실행할 프로그램의 현재 폴더 경로 명시하고, NULL일 경우 윈도우 기본설정을 적용.


 

이제 저 위에 함수를 이용하여 만드는것을 하겠습니다.

 

프로젝트는 다이얼로그 대화상자 기반으로 만들고, 일단 다이얼로그를 디자인합니다. 

 

 

UI는 위와같이 다지안하고서   ID값을 저렇게 일단 매치 시켜줍니다.

 

 

 

 

IDC_TEXT_PATH인 저 텍스트 컨트럴에 마우스 오른쪽키 누르고, 연결변수를 등록합니다

범주는 VALUE, 변수형식은 CSTRING, 변수이름은 m_path

 

 

찾아보기 버튼에 마우스오른쪽키누르고, 이벤트를 위와같이 추가시켜주고 다음과같이 코딩합니다.

 

 

 

실행버튼 또한 위와같이 이벤트를 추가 시켜줍니다

 

 

 그리고 위와같이 코딩해줍니다..

 

 이 실습에서 가장 핵심은 저 윗부분

ShellExecute(NULL, TEXT("open"), m_path, NULL, NULL, SW_SHOW);

입니다.