MFC 在后台运行的程序中 模拟鼠标点击(不影响当前鼠标的操作!)

首先我用findwindow获得了窗口的句柄hh=CWnd::FindWindow(NULL,"xxx");//xxx为某一窗口h->MessageBox("已经绑定到x... 首先我用 findwindow 获得了 窗口的句柄 h

h=CWnd::FindWindow(NULL,"xxx");//xxx为某一窗口
h->MessageBox("已经绑定到xxx");//这句可以成功执行
然后问题就出现了

1.我用:
h->PostMessage(WM_RBUTTONDBLCLK, 0, MAKELONG(10,10) );
2.或用:
::PostMessage(h->m_hWnd,WM_RBUTTONDOWN,MK_RBUTTON,MAKELONG(10,10));
3或者用h->SendMessage(WM_LBUTTONDOWN, 0, MAKELONG(10,10) );
h->SendMessage(WM_LBUTTONUP, 0, MAKELONG(10,10) );
都无法对目标窗口发送成功鼠标的消息····

注意 不要提供这种方法
SetCursorPos(kx.left+910,kx.top+200);//防御
mouse_event(MOUSEEVENTF_LEFTDOWN|MOUSEEVENTF_LEFTUP,0,0,0,0);

我要的是模拟鼠标点击 而真正的鼠标是不受影响的 希望能提供源代码
貌似可以用 directinput 但是具体怎么用那 要提供什么com呢
希望有人可以提供源代码 谢谢
展开
 我来答
Sumerhotzzy
2008-10-02 · TA获得超过146个赞
知道小有建树答主
回答量:190
采纳率:0%
帮助的人:209万
展开全部
你想做的就是让h窗口响应你想要的鼠标事件吧?
如果h窗口是程序进程创建的,可以重载一下h的PreTranslateMessage看看消息是否被发送过来了,注意只截取你发送的消息。
如果h窗口是别的程序进程创建的,那就只能用工具看看h是否接收到消息了。
还有一个很猥琐的方法。。你可以让鼠标移动过去点击一下然后再回来。。。只是发送消息的话用户一般感觉不到的。。。
何处淬吴钩
2008-10-01 · TA获得超过5044个赞
知道大有可为答主
回答量:2947
采纳率:50%
帮助的人:2407万
展开全部
你要确认h是响应鼠标消息的窗口。有的窗口是多个窗口嵌套的。也许响应鼠标消息的是在其子窗口中说不定。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
vsmingren2000
2008-10-07
知道答主
回答量:1
采纳率:0%
帮助的人:0
展开全部
遇到相同问题,我在CSDN上喊了好几天都没人能真正解决,不过我遇到的一些类似问题用PostMessage和SendMessage可以,但有一些就不行,真不知是为什么???
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
安定且感人的福音
2008-09-30
知道答主
回答量:10
采纳率:0%
帮助的人:0
展开全部
如何判断消息没有发送成功?用SPY++监视过目标窗口的消息吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式