[发明专利]一种消息处理方法及装置有效
申请号: | 201410075643.2 | 申请日: | 2014-03-03 |
公开(公告)号: | CN104899088B | 公开(公告)日: | 2019-04-12 |
发明(设计)人: | 潘在亮;赖勇辉 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 谢安昆;宋志强 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 消息 处理 方法 装置 | ||
本发明公开一种消息处理方法及装置,涉及信息技术领域,使得可以解决因目标窗口出现“卡死”现象导致的模拟程序对应的进程而出现的“卡死”现象,以及解决当目标窗口的状态发生改变导致影响模拟程序对应的进程处理下一个模拟操作的情况。本发明以寄送方式发送模拟操作对应的消息到目标窗口;以寄送方式发送计时消息到所述目标窗口创建的辅助窗口,所述辅助窗口与所述目标窗口在同一个进程中,并且所述辅助窗口与所述目标窗口对应的消息队列相同;设置预设时间,当在所述预设时间内获知所述辅助窗口接收到所述计时消息时,继续执行下一个模拟操作。本发明适于对消息进行处理时采用。
技术领域
本发明涉及信息技术领域,尤其涉及一种消息处理方法及装置。
背景技术
Windows的消息发送方式可以分为两种:一种为同步方式,即通过调用SendMessage函数将消息发送给目标窗口后,待目标窗口处理完该消息后,将响应消息返回给模拟程序对应的进程,以便模拟程序对应的进程执行下一个模拟操作;一种为异步方式,即通过调用PostMessage将消息发送给目标窗口后,模拟程序对应的进程直接执行下一个模拟操作。例如,目标窗口中已显示有一个第一菜单栏,预期的效果为:当用户在目标窗口中且该第一菜单栏以外的空白区域点击右键时,在目标窗口在该第一菜单栏以外的空白区域建立第二菜单栏。然而,现有技术在采用异步方式时,模拟程序不等待目标窗口处理上述右键点击发出的点击消息,就去操作第二菜单栏。此时找到的弹出菜单可能是第一菜单栏,也可能刚好遇到第一菜单消失而第二菜单未出现,导致找不到第一菜单或第二菜单。这两种情况都不是模拟程序预期的效果。
因此,采用同步方式处理Windows的消息时,当目标窗口出现“卡死”现象时,会导致模拟程序对应的进程也会因等待目标窗口处理消息而出现“卡死”现象;采用异步方式处理Windows的消息时,模拟程序不等待目标窗口处理完消息即执行下一个模拟操作,从而影响下一个模拟操作执行后的效果。
发明内容
本发明的实施例提供一种消息处理方法及装置,能够解决因目标窗口出现“卡死”现象导致的模拟程序对应的进程而出现的“卡死”问题,以及解决当模拟程序不等目标窗口处理完消息便执行下一个模拟操作,导致因执行过快影响下一个模拟操作执行后的效果的问题。
第一方面,本发明的实施例提供一种消息处理方法,包括:
以寄送方式发送模拟操作对应的消息到目标窗口,以便所述目标窗口接收并处理所述消息;
以寄送方式发送计时消息到所述目标窗口创建的辅助窗口,所述辅助窗口与所述目标窗口在同一个进程中,并且所述辅助窗口与所述目标窗口对应的消息队列相同;
设置预设时间,当在所述预设时间内获知所述辅助窗口接收到所述计时消息时,继续执行下一个模拟操作。
第二方面,本发明的实施例提供一种消息处理装置,包括:
发送单元,用于以寄送方式发送模拟操作对应的消息到目标窗口,以便所述目标窗口接收并处理所述消息;
设置单元,用于设置预设时间;
所述发送单元,还用于以寄送方式发送计时消息到所述目标窗口创建的辅助窗口,所述辅助窗口与所述目标窗口在同一个进程中,并且所述辅助窗口与所述目标窗口对应的消息队列相同;
第一处理单元,用于当在所述设置单元设置的所述预设时间内获知所述辅助窗口接收到所述计时消息时,继续执行下一个模拟操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410075643.2/2.html,转载请声明来源钻瓜专利网。