为什么Win7下管理员权限运行程序SentMessage和postMessage拒绝访问? 我以管理员权限启动了一个程序,关联文件双击又启动了一个程序,在程序互斥里我用SentMessageTimerOut发给管理员权限运行的窗口一个消息,失败了,返回值5,拒绝访问,我用postMessage也是一样失败了!如何解决请告知一下,我怀疑是权限不同的程序不能交互通讯?我想遇到此问题的朋友告诉我一下解决办法!(请别灌水,很急的,麻烦大姐了,在此谢过了) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 integrity level低的进程不能向高的进程发消息用ChangeWindowMessageFilter调整 typedef 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; } 注意ChangeWindowMessageFilter第一个参数的消息值必须大于WM_USER即是一个自定义消息。 Vista之後加入了所謂UIPI 除了前述ChangeWindowMessageFilter 還可以考慮其他方式通信 比如socket 【MFC】怎么获取一个USB设备的PID和VID 关于WSAEventSelect 模型的一点小的疑问(解决今晚揭帖:)) 如何画曲线并输出数据文件? 关于SDI窗口最大化的问题,请指点 请高手们想个办法!!! TCP数据包能解析到什么程度? 看什么书最容易上手? 关于com中数据类型的使用----vb client 如何获取桌面上所有的图标以及图标的名字呢? 2013年博客之星拉票,本人系微软最有价值专家,百度校园招聘第二名,希望能值得您投下宝贵的一票。 台湾按摩师,不学电脑技术,以致身陷囹圄,发人深省啊。。。 写一个和控件关联的图像显示操作类 继承自CStatic 那位大侠 帮帮忙
用ChangeWindowMessageFilter调整
{
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;
}
ChangeWindowMessageFilter第一个参数的消息值必须大于WM_USER
即是一个自定义消息。