ShellExecuteEx(A)
ShellExecuteEx(A)
새로운 프로세스를 기동합니다.폴더를 익스플로러로 열리거나 문서 파일을 관련지을 수 있었던 어플리케이션으로 열리거나 할 수도 있습니다.
BOOL ShellExecuteExA( LPSHELLEXECUTEINFO pExecInfo // SHELLEXECUTEINFO구조체 );
SHELL32.DLL
인수
- pExecInfo
-
실행되는 어플리케이션에 대한 정보를 격납했다 SHELLEXECUTEINFO 구조체의 주소를 지정합니다.
반환값
성공하면 0 이외의 값이 돌아갑니다.
실패하면 0 하지만 돌아갑니다.확장 에러 정보를 취득하려면 , GetLastError 함수를 사용합니다.
해설
함수의 호출이 성공하면, SHELLEXECUTEINFO 구조체의 hInstApp 멤버는 실행된 어플리케이션의 인스턴스 핸들이 됩니다.함수가 실패했을 경우는 32 이하의 SE_ERR_ 에러치가 됩니다.이 에러치는 ShellExecute 함수와 호환의 것입니다. ShellExecuteEx 함수로 에러치를 얻기 위해서는 GetLastError 함수를 사용하도록 해 주세요.
GetLastError 함수는 이하의 몇개의 값을 돌려줍니다.이러한 값은 SE_ERR_ 값에 대응하고 있습니다.
치 | 의미 |
---|---|
2 (ERROR_FILE_NOT_FOUND) |
지정된 파일이 발견되지 않습니다. |
3 (ERROR_PATH_NOT_FOUND) |
지정된 패스가 발견되지 않습니다. |
5 (ERROR_ACCESS_DENIED) |
지정된 파일에의 액세스는 거부되었습니다. |
8 (ERROR_NOT_ENOUGH_MEMORY) |
메모리가 부족하기 때문에 실행할 수 없습니다. |
32 (ERROR_SHARING_VIOLATION) |
공유 위반이 발생했습니다. |
1155 (ERROR_NO_ASSOCIATION) |
주어진 파일명의 확장자(extension)와 관련지을 수 있었던 어플리케이션이 없습니다. |
1156 (ERROR_DDE_FAIL) |
DDE 트랜잭션(transaction)가 실패했습니다. |
1157 (ERROR_DLL_NOT_FOUND) |
어플리케이션의 실행에 필요한 DLL 의1개가 발견되지 않습니다. |
1223 (ERROR_CANCELLED) |
함수는 유저에게 추가 정보를 재촉했습니다만, 유저가 요구를 캔슬했습니다. |
대응 정보
Shell32.dll Version 4.00 이후
Windows 95 이후 / Windows NT 4.0 이후