[发明专利]一种获取无窗口RichEdit控件文本内容的方法及其设备有效
申请号: | 201010161277.4 | 申请日: | 2010-04-28 |
公开(公告)号: | CN101834807A | 公开(公告)日: | 2010-09-15 |
发明(设计)人: | 李继明 | 申请(专利权)人: | 北京网康科技有限公司 |
主分类号: | H04L12/58 | 分类号: | H04L12/58 |
代理公司: | 北京亿腾知识产权代理事务所 11309 | 代理人: | 陈霁 |
地址: | 100190 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 获取 窗口 richedit 控件 文本 内容 方法 及其 设备 | ||
1.一种获取无窗口RichEdit控件文本内容的方法,其特征在于,包括:
步骤a,安装消息钩子,以便监控窗口事件;
步骤b,在监控窗口事件过程中,修改该聊天软件中RichEdit模块的创建文本服务对象函数的入口地址,使其跳转到用于获取文本服务对象接口指针的HOOK函数中;
步骤c,调用该HOOK函数,以获取所述文本服务对象的接口指针;
步骤d,根据所述文本服务对象的接口指针访问RichEdit控件,从而获得所述无窗口RichEdit控件文本内容。
2.如权利要求1所述的一种获取无窗口RichEdit控件文本内容的方法,其特征在于,在所述步骤a之后,步骤b之前包括:
步骤h,系统强制加载DLL模块;
步骤e,检测目标进程中是否已经加载DLL模块;
步骤f,如果尚未加载DLL模块则系统强制加载DLL模块,再执行步骤g;如果已经加载了DLL模块则直接执行步骤g;
步骤g,检测目标进程是否属于感兴趣进程,如果不是感兴趣进程则将该加载的DLL模块退出,如果是感兴趣进程则继续执行所述步骤b。
3.如权利要求1所述的一种获取无窗口RichEdit控件文本内容的方法,其特征在于,所述创建文本服务对象的函数为CreateTextServices函数,所述文本服务对象的接口指针为ITextServices接口指针。
4.如权利要求3所述的一种获取无窗口RichEdit控件文本内容的方法,其特征在于,所述HOOK函数功能为:
先恢复所述CreateTextServices函数入口地址,以便调用该CreateTextServices函数;
然后通过调用该CreateTextServices函数得到所述ITextServices的接口指针;
再将CreateTextServices函数入口地址改写成跳转到该HOOK函数入口地址的指令;
最后将该HOOK函数返回,其返回值为内部调用CreateTextServices函数的返回值。
5.如权利要求4所述的一种获取无窗口RichEdit控件文本内容的方法,其特征在于,所述HOOK函数包括传入参数IUnknown*punkOuter、ITextHost*pITextHost,以及传出参数IUnknown**ppUnk;
该HOOK函数通过该输入参数得到该输出参数,并通过该传出参数得到所述ITextServices接口指针。
6.如权利要求1所述的一种获取无窗口RichEdit控件文本内容的方法,其特征在于,所述RichEdit控件处理的消息包括以下消息中的一个或多个:
用于获取该RichEdit控件文本行数的EM_GETLINECOUNT消息;
用于得到行开头字符索引值的EM_LINEINDEX消息;
用于得到行长度的EM_LINELENGTH消息;以及
用于获取指定范围文本内容的EM_GETTEXTRANGE消息。
7.如权利要求6所述的一种获取无窗口RichEdit控件文本内容的方法,其特征在于,所述步骤d包括:
获取所述RichEdit控件当前的文本行数,并与原记录的行数进行比较,如果没有变化则不进行任何处理;
如果当前行数大于原行数,则以原行数作为循环起点,新行数作为循环结束点,开始循环;
在该循环体中,以当前行数值作为索引,先获取当前行首字符的偏移值,并将其作为区段起始值,然后获取当前行的长度,并将其作为区段结束值,再获取当前行设定的区段文本内容,并进行处理;
继续获取下一行内容,直到所有新增行的内容都获取完为止。
8.如权利要求1所述的一种获取无窗口RichEdit控件文本内容的方法,其特征在于,所述安装消息钩子包括安装CBT消息钩子、安装鼠标消息钩子和安装键盘消息钩子,从而实时监控窗口事件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京网康科技有限公司,未经北京网康科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010161277.4/1.html,转载请声明来源钻瓜专利网。