C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 팁&트릭
C++Builder Programming Tip&Tricks
[747] [System] Vista (비스타)에서 SendMessage사용하기
장성호 [nasilso] 12869 읽음    2008-02-27 22:11
그동안 Vista는 전혀 신경쓰지 않고 프로그램했었는데...
이제 슬슬 신경쓰이네요.. 쩝쩝

비스타에서는 UAC가 동작하고 있을때
권한이 낮은 어플리케이션에서 높은 어플리케이션으로 메시지가 전달이 안된다고 합니다.

그래서 권한이 높은 어플리케이션에서 ChangeWindowMessageFilter 를 이용하여 
메세지를  Filter에 등록해주면 됩니다.

참조
http://www.delmadang.com/community/bbs_view.asp?bbsNo=3&bbsCat=43&indx=197397&keyword1=vista&keyword2=
http://blog.naver.com/remipa01?Redirect=Log&logNo=90015086046

void __fastcall Form1::ChangeMessageFilter()
{
      typedef BOOL (WINAPI *CHANGEWINDOWMESSAGEFILTER)(UINT message, DWORD dwFlag);

     //코드

     CHANGEWINDOWMESSAGEFILTER ChangeWindowMessageFilter = NULL;
     HINSTANCE hDll;

     hDll = LoadLibrary("USER32.DLL");
     if (hDll == NULL) return;

     ChangeWindowMessageFilter=(CHANGEWINDOWMESSAGEFILTER)GetProcAddress(hDll,"ChangeWindowMessageFilter");

     if (ChangeWindowMessageFilter == NULL) return;

     ChangeWindowMessageFilter(WM_COPYDATA,1); //
      //Falg   1= add   ,  2=remove 입니다.
     FreeLibrary(hDll);
}

그럼....

+ -

관련 글 리스트
747 [System] Vista (비스타)에서 SendMessage사용하기 장성호 12869 2008/02/27
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.