관리 메뉴

c0smicb0y

ShellExecute vs CreateProcess 본문

프로그래밍/Windows

ShellExecute vs CreateProcess

2015. 10. 2. 22:16

ShellExecute() 와 CreateProcess() 는 모두 보기에는 프로세스를 만들어주는 api처럼 보이지만 차이점이 있다.


MSDN에는 CreateProcess()를 다음과 같이 설명하고 있다.

Creates a new process and its primary thread. The new process runs in the security context of the calling process.

새로운 프로세스와 그 최우선의 스레드를 생성한다. 그 새 프로세스는 호출하는 프로세스의 보안 컨텍스트 안에서 구동된다.


ShellExecute()는 다음과 같이 설명되어 있다.

Performs an operation on a specified file.

특정한 파일의 명령을 수행한다.



CreateProcess()는 특정 프로그램을 실행시키는거지만, ShellExecute()는 특정한 파일에 대해서 열 수도 있고, 수정할 수 있고, 출력할 수 도 있다.


Shell api는 탐색기처럼 생각하면 된다.


프로그램을 실행시키면 레지스트리에 연결된 놈이 자동으로 뜨면서 실행을 하게 된다.


Process api를 래핑해 놓은게 Shell api다.


엄밀히 따지면 ShellExecute는 프로세스를 실행시키는 것이 아니다.


'프로그래밍 > Windows' 카테고리의 다른 글

Child Process를 디버깅하는 방법  (0) 2015.11.21
VC 컴파일러 환경 변수 설정  (0) 2015.11.13
함수에서의 레지스터 사용  (0) 2015.11.04
Calling Convention (호출규약)  (0) 2015.11.04
Comments