오늘은 ShellExecute 사용법을 알아보겠습니다.
함수 원형은 아래와 같습니다.
HINSTANCE ShellExecuteA(
HWND hwnd, // 오류 메시지를 표시하는데 사용되는 상위 창 핸들
LPCSTR lpOperation, // 명령(열기(open), 탐색(explore), 인쇄(print), 찾기(find), 편집(edit))
LPCSTR lpFile, // 경로
LPCSTR lpParameters, // 전달 인자
LPCSTR lpDirectory, // 디렉토리
INT nShowCmd // 옵션
);
1. open
– 응용프로그램 열기
ShellExecute에 카카오톡.exe가 존재하는 경로를 아래와 같이 입력하면 프로그램이 실행 됩니다.
::ShellExecute( NULL, _T( "open" ), _T( "C:\\Program Files (x86)\\Kakao\\KakaoTalk\\KakaoTalk.exe" ), NULL, NULL, SW_SHOW );
– 폴더 열기
open은 파일탐색기(explorer.exe)에 경로를 지정하여 실행 할 수 있습니다.
::ShellExecute( NULL, _T( "open" ), _T( "explorer.exe" ), _T( "c:\\" ), NULL, SW_SHOW );
아래와 같이 코딩하면 해당 폴더를 선택할 수 있습니다.
::ShellExecute( NULL, _T( "open" ), _T( "explorer.exe" ), _T( "/select,c:\\" ), NULL, SW_SHOW );
– 인터넷 익스플로러 실행
open으로 특정 주소의 웹 페이지를 열 수 있습니다.
::ShellExecute( NULL, _T( "open" ), _T( "https://3001ssw.com" ), NULL, NULL, SW_SHOW );
아래와 같은 방법으로 웹 브라우저를 선택해서 열 수 있습니다.
::ShellExecute( NULL, _T( "open" ), _T( "iexplore.exe" ), _T( "https://3001ssw.com" ), NULL, SW_SHOW );
::ShellExecute( NULL, _T( "open" ), _T( "chrome.exe" ), _T( "https://3001ssw.com" ), NULL, SW_SHOW );
2. explore
explore 명령어로도 파일 탐색기를 열 수 있습니다.
::ShellExecute( NULL, _T( "explore" ), _T( "c:\\" ), NULL, NULL, SW_SHOW );
3. print
아래와 같이 특정 파일을 인자로 넣고 인쇄를 할 수 있습니다.
::ShellExecute( NULL, _T( "print" ), _T( "C:\\TEST.txt" ), NULL, NULL, SW_SHOW );
4. find
해당 폴더 위치에서 검색 화면을 실행 할 수 있습니다.
::ShellExecute( NULL, _T( "find" ), _T( "c:\\TestDirectory" ), NULL, NULL, SW_SHOW );
5. edit
아래와 같이 특정 파일을 편집할 수 있습니다.
ShellExecute( NULL, _T( "edit" ), _T( "C:\\TEST.txt" ), NULL, NULL, SW_SHOW );