ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [MFC]ShellExecute Function
    Window Programming/MFC 2008. 3. 13. 17:42
    728x90

    출처 : http://msdn2.microsoft.com/en-us/library/ms647732.aspx


    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

    'Window Programming > MFC' 카테고리의 다른 글

    title name변경  (0) 2008.10.05
    Window I/O 제어  (0) 2008.03.21
    [MFC]ShellExecute 예제  (0) 2008.03.13
    MFC tips  (0) 2008.01.31
    [Control] 스태틱 컨트롤 배경을 투명하게...  (0) 2008.01.30

    댓글

Designed by black7375.