win7下万能跨进程PostMessage/SendMessage
2020-12-13 02:59
标签:style class blog code color get 简单使用: win7下万能跨进程PostMessage/SendMessage,搜素材,soscw.com win7下万能跨进程PostMessage/SendMessage 标签:style class blog code color get 原文地址:http://www.cnblogs.com/pugna/p/3790877.htmltypedef BOOL (WINAPI *_ChangeWindowMessageFilter)( UINT , DWORD);
BOOL AllowMeesageForWin7(UINT uMessageID, BOOL bAllow)//注册Win7全局消息
{
BOOL bResult = FALSE;
HMODULE hUserMod = NULL;
hUserMod = LoadLibrary( _T("user32.dll") );
if( NULL == hUserMod )
{
return FALSE;
}
do
{
_ChangeWindowMessageFilter pChangeWindowMessageFilter = (_ChangeWindowMessageFilter)GetProcAddress( hUserMod, "ChangeWindowMessageFilter" );
if( NULL == pChangeWindowMessageFilter )
{
AfxMessageBox(_T("create windowmessage filter failed"));
break;
}
bResult = pChangeWindowMessageFilter( uMessageID, bAllow ? 1 : 2 );//MSGFLT_ADD: 1, MSGFLT_REMOVE: 2
}while (0);
if( NULL != hUserMod )
{
FreeLibrary( hUserMod );
}
return bResult;
}
BOOL IsVistaOrLater()
{
OSVERSIONINFO osvi;
ZeroMemory(&osvi, sizeof(OSVERSIONINFO));
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
GetVersionEx(&osvi);
if( osvi.dwMajorVersion >= 6 )
return TRUE;
return FALSE;
}
if (IsVistaOrLater())
{
if ( !AllowMeesageForWin7(0xAAA,TRUE) || !AllowMeesageForWin7(0xBBB,TRUE) )
{
MessageBox("注册消息失败.","发生错误!",0);
return FALSE;
}
}
文章标题:win7下万能跨进程PostMessage/SendMessage
文章链接:http://soscw.com/essay/26719.html