프로그래밍/C, C++, MFC
[Visual Studio Programming] SendMessage Access Denied. IPC통신 안될때 해결책
알뜰사랑
2011. 8. 18. 19:08
반응형
이전글에 연속으로 글을 써본다.
1. 서비스에서 CreateProcessAsUser 로 프로세스 A 를 실행 시키면 A 프로세스는 관리자 권한이라는
높은 권한으로 프로세스가 실행이 된다.
이때 다른 B 프로세스에서 A 프로세스로 SendMessage 등의 IPC 통신을 시도 하게 되면 Access Denied 가 발생한다.
이는 권한이 약한 B 프로세스가 권한이 높은 A 프로세스에게 메시지 전달을 할수 없기 때문에 발생한다.
(권한 때문에 막혔기 때문)
이때는 권한이 높은 B 프로세스에 ChangeWindowMessageFilter 를 이용하여 특정 메시지를 받도록
승인 처리를 해주어야 한다.
예를 들어 WM_COPYDATA 를 받기를 원한다면
ChangeWindowMessageFilter(WM_COPYDATA,1);
이렇게 해주면 된다.
쉽죠잉~~~ ^^
반응형