그동안 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);
}
그럼....
|