반응형
이전글에 연속으로 글을 써본다.
1. 서비스에서 CreateProcessAsUser 로 프로세스 A 를 실행 시키면 A 프로세스는 관리자 권한이라는
높은 권한으로 프로세스가 실행이 된다.
이때 다른 B 프로세스에서 A 프로세스로 SendMessage 등의 IPC 통신을 시도 하게 되면 Access Denied 가 발생한다.
이는 권한이 약한 B 프로세스가 권한이 높은 A 프로세스에게 메시지 전달을 할수 없기 때문에 발생한다.
(권한 때문에 막혔기 때문)
이때는 권한이 높은 B 프로세스에 ChangeWindowMessageFilter 를 이용하여 특정 메시지를 받도록
승인 처리를 해주어야 한다.
예를 들어 WM_COPYDATA 를 받기를 원한다면
ChangeWindowMessageFilter(WM_COPYDATA,1);
이렇게 해주면 된다.
쉽죠잉~~~ ^^
반응형
'프로그래밍 > C, C++, MFC' 카테고리의 다른 글
중단점이 현재 적중되지 않습니다. 소스 코드가 원래 버전과 다릅니다 (0) | 2013.03.28 |
---|---|
[vcredist 설치] UI 없이 설치하기 (1) | 2011.09.05 |
VC6 에서 WTSGetActiveConsoleSessionId 사용하기 (0) | 2011.08.22 |
[Visual Studio Programming] 서비스에서 CreateProcessAsUser 사용하기. (0) | 2011.08.18 |
VC Dll 생성시 debug 와 release 파일명 다르게 만들기 (0) | 2011.04.20 |