ShellExecute Function
명세한 파일의 작동을 수행한다.
Syntax
HINSTANCE ShellExecute(
HWND hwnd,
LPCTSTR lpOperation,
LPCTSTR lpFile,
LPCTSTR lpParameters,
LPCTSTR lpDirectory,
INT nShowCmd
);
Parameters
hwnd
[in] UI 또는 에러 메시지를 디스플레이 하기 위해 사용되는 소유자 윈도우에 대한 핸들. 작업이 윈도우에 연결되어 있지 않으면
이 값은 NULL이 될 수 있다.
lpOperation
[in] 이 경우에 verb로 참조되는 수행되어야 할 동작을 지정하는 null-terminated string에 대한 포인터. 가능한 verbs의 집합은
특정한 파일 또는 폴더에 의존한다. 일반적으로, 객체의 단축 메뉴로부터 가능한 action이 가능한 verb이다.
lpFile
[in] 지정한 verb를 수행해야 하는 파일 또는 객체를 명세하는 null-terminated 문자열에 대한 포인터.
lpParameters
[in] lpFile 파라미터가 실행 파일을 명세하고 있다면 lpParameter는 어플리케이션으로 전달되는 파라미터를 가르키는 null-ter
minated 문자열에 대한 포인터이다.
lpDirectory
[in] 기본 디렉토리를 명세하는 null-terminated 문자열에 대한 포인터.
nShowCmd
[in] 오픈되었을 때 어플리케이션이 어떻게 표시될지를 명세하는 플래그. lpFile이 문서 파일을 지정하고 있다면, 플래그는 간단
히 연결된 어플리케이션으로 전달된다. 어떻게 처리할지는 결정하는 것은 어플리케이션 책임이다.
SW_HIDE
SW_MAXIMIZE
SW_MINIMIZE
SW_RESTORE
SW_SHOW
SW_SHOWDEFAULT
SW_SHOWMAXIMIZED
SW_SHOWMINIMIZED
SW_SHOWMINNOACTIVE
SW_SHOWNA
SW_SHOWNOACTIVATE
SW_SHOWNORMAL
Return Values
0 OS가 out of memory 또는 resource
ERROR_FILE_NOT_FOUND 지정한 파일을 찾을 수 없다.
ERROR_PATH_NOT_FOUND 지정한 경로를 찾을 수 없다
ERROR_BAD_FORMAT .exe 파일이 유효하지 않다.
SE_ERR_ACCESSDENIED OS가 지정할 파일에 대한 접근을 거부한다.
SE_ERR_ASSOCINCOMPLETE 파일 이름 연결이 완성되지 않았거나 유효하지 않다.
SE_ERR_DDEBUSY Dynamic Data Exchange(DDE) transaction이 완성되지 못한다 왜냐하면 다른 DDE transcation이 수행
중 이기 때문이다.
SE_ERR_DDEFAIL DDE 트랜잭션이 실패했다.
SE_ERR_DDETIMEOUT DDE 트랜잭션이 완료되지 않는다 왜냐하면 요청한 타임이 다 되었기 때문이다.
SE_ERR_DLLNOTFOUND 지정한 DLL을 찾을 수 없다.
SE_ERR_FNF 지정한 파일을 찾을 수 없다.
SE_ERR_NOASSOC
SE_ERR_OOM
SE_ERR_PNF
SE_ERR_SHARE
Remark
이 메소드는 폴더의 바로가기 메뉴 또는 레지스트리의 바로가기의 어떠한 명령어라도 수행할 수 있다.
폴더를 열기 위해서, 다음의 호출 중의 하나를 사용하라.
ShellExecute(handle, NULL, <fully_qualified_path_to_folder>, NULL, NULL, SW_SHOWNORMAL);
또는
ShellExecute(handle, "open", <fully_qualified_path_to_folder>, NULL, NULL, SW_SHOWNORMAL);
폴더를 탐색하기 위해서 다음의 호출을 사용하라.
ShellExecute(handle, "explore", <fully_qualified_path_to_folder>, NULL, NULL, SW_SHOWNORMAL);
디렉토리에서 Shell의 Find 유틸리티를 실행하기 위해서는 다음의 호출을 사용하라.
ShellExecute(handle, "find", <fully_qualified_path_to_folder>, NULL, NULL, 0);
lpOperation이 NULL 이면, 함수는 lpFile로 명세된 파일을 오픈한다. lpOperation이 "open" 또는 "exploer"이면 함수는 폴더를
열거나 탐색하려는 시도를 한다.
ShellExecute를 호출하는 결과로 실행되는 어플리케이션에 대한 정보를 얻기 위해서는 ShellExecuteEx를 사용하라.
Note 폴더 옵션의 Launch folder windows in a separate procee 설정은 ShellExecute에 영향을 미친다. 만약 이 옵션이 disa
ble(기본 설정)이면 ShellExecute는 새로운 Explorer를 실행하는게 아니라 open Explorer 윈도우를 사용한다. 만약 Explorer
윈도우가 열려 있지 않으면, ShellExecute는 새로운 것을 실행한다.
Windows 95/98/Me : ShellExecute는 Microsoft Layer for Unicode에 의해 지원된다. 이것을 사용하기 위해서는, 특정한 파일
을 여러분의 어플리케이션에 추가해야만 한다, Microsoft Layer for Unicode on Windows Me/98/95 Systems에 있는것 처럼.
Function Information
Minimum DLL Version shell32.dll 버전 3.51 이후 버전
Custom Implementation No
Header shellapi.h
Import library shell32.lib
Minimum operating systems Windows NT 3.1, Windows 95
Unicode Implemented as ANSI and Unicode versions
[출처] [MFC]ShellExecute Function|작성자 네이밍
'프로그래밍 > 공부관련' 카테고리의 다른 글
스트링 형변환 정리 (0) | 2010.05.17 |
---|---|
CString -> LPTSTR (0) | 2010.05.09 |
Direct X - Direct Input (0) | 2010.05.08 |
CString 에서 Char* (0) | 2010.05.08 |
CIPAddressCtrl 의 ip주소를 cstring으로 받기 (0) | 2010.05.07 |