聊天信息的获取方法和装置与流程

文档序号:16326311发布日期:2018-12-19 05:56阅读:390来源:国知局
聊天信息的获取方法和装置与流程

本发明涉及即时通讯技术领域,特别是涉及一种聊天信息的获取方法和装置。

背景技术

近年来,随着各种泄密事件的突发,泄密事件对国家的安全和长远发展都构成了极大威胁。对于关系到国计民生的金融行业而言,其则有更高的安全防护需求,更需要及时防止泄密事件的发生。

不论是哪个行业都需要防止发生泄密事件,那么为了避免泄密事件的发生,人们常常需要从常用的即时通讯软件的聊天记录着手。企业内部员工的即时通讯软件的聊天记录可以完整地记录员工与他人的聊天内容,那么如果能够获取到即时通讯软件的聊天内容,则可以方便事后审计、追溯,及时防止泄密事件的发生。

那么对于获取即时通讯软件的聊天记录的方案而言,现有技术的方案主要是通过窗口消息拦截和窗口枚举来获取聊天窗口,从而得到该聊天窗口的聊天记录。具体而言,基于聊天窗口的聊天记录获取技术,可以通过监控聊天窗口的消息事件,分析出聊天消息窗口,最后,从该聊天消息窗口获取聊天历史记录。

但是,目前的即时通讯软件基本上都已经是基于directui(paintonparentdcdirectly)技术开发的。具体而言,directui意为直接在父窗口上绘图。即子窗口不以窗口句柄的形式创建,只是逻辑上的窗口,其绘制在父窗口之上。微软的“directui”技术广泛的应用于windowsxp,vista,windows7,如浏览器左侧的taskpanel、控制面板导航界面、mediaplayer播放器、即时通讯工具msnmessager等。

从实际需求和应用的角度出发,目前绝大部分主流即时通讯类软件都弃用了基于传统窗口架构的软件界面技术,进而直接采用directui技术实现界面绘制,达到界面精巧、美观的目的。

简单而言,directui架构的界面程序有别于传统的窗口架构方式,整个窗口是一个容器,该容器不再具有聊天记录,窗口里面的控件都是开发人员单独绘制的,绘制的控件没有子窗口的概念,但是位于窗口中的控件却具有聊天记录。

所以,现有技术中的基于聊天窗口的聊天记录获取技术只能识别到上述属于容器的窗口,而由于该属于容器的窗口本身并不具有聊天记录,因此,其也无法从该窗口中获取到聊天记录。

由此可见,现有技术中的聊天信息获取方案已经无法对采用directui架构的即时通讯软件准确地获取用户聊天信息。



技术实现要素:

本发明提供了一种聊天信息的获取方法和装置,以解决现有技术无法对采用directui架构的即时通讯软件获取聊天信息的问题。

为了解决上述问题,根据本发明的一个方面,本发明公开了一种聊天信息的获取方法,包括:

识别预设即时通讯软件的聊天窗口;

若接收到针对所述聊天窗口的预设键盘消息或预设鼠标消息,则对所述聊天窗口截图,得到聊天窗口图片;

根据所述预设即时通讯软件的预设图片分割规则,对所述聊天窗口图片进行分割,得到包括聊天信息的第一目标图片;

采用光学字符识别技术对所述第一目标图片进行字符识别,获取所述第一目标图片中的聊天信息。

可选地,所述识别预设即时通讯软件的聊天窗口,包括:

在启动的进程中识别对应预设即时通讯软件的目标进程;

识别所述目标进程的当前被激活的窗口是否为聊天窗口;

若识别所述窗口为聊天窗口,则将所述窗口确定为所述预设即时通讯软件的聊天窗口。

可选地,所述若接收到针对所述聊天窗口的预设键盘消息,则对所述聊天窗口截图,得到聊天窗口图片,包括:

若接收到键盘全局钩子抓取的表示在所述聊天窗口中输入预设按键的消息,则对所述聊天窗口截图,得到聊天窗口图片,其中,所述预设按键为键盘中用于表示在所述聊天窗口中发送聊天内容的按键。

可选地,所述若接收到针对所述聊天窗口的预设鼠标消息,则对所述聊天窗口截图,得到聊天窗口图片,包括:

若接收到鼠标全局钩子抓取的表示点击所述聊天窗口中的预设按钮的消息,则对所述聊天窗口截图,得到聊天窗口图片,其中,所述预设按钮为所述聊天窗口中用于发送聊天内容的按钮。

可选地,所述预设即时通讯软件的预设图片分割规则包括所述预设即时通讯软件的聊天窗口的布局信息,所述根据所述预设即时通讯软件的预设图片分割规则,对所述聊天窗口图片进行分割,得到包括聊天信息的第一目标图片,包括:

根据所述预设即时通讯软件的聊天窗口的布局信息,确定所述聊天窗口图片中用于显示聊天信息的第一目标区域;

从所述聊天窗口图片中分割出所述第一目标区域,得到包括所述聊天信息的第一目标图片。

可选地,所述预设即时通讯软件的预设图片分割规则包括所述预设即时通讯软件的聊天窗口的布局信息,所述对所述聊天窗口截图,得到聊天窗口图片之后,所述方法还包括:

根据所述预设即时通讯软件的聊天窗口的布局信息,确定所述聊天窗口图片中用于显示聊天成员信息的第二目标区域;

从所述聊天窗口图片中分割出所述第二目标区域,得到包括聊天成员信息的第二目标图片;

采用光学字符识别技术对所述第二目标图片进行字符识别,获取所述第二目标图片中的聊天成员信息。

可选地,所述采用光学字符识别技术对所述第一目标图片进行字符识别,获取所述第一目标图片中的聊天信息之后,所述方法还包括:

对多次获取到的多个第一目标图片中的多组聊天信息进行去重处理,得到目标聊天信息。

根据本发明的另一方面,本发明还公开了一种聊天信息的获取装置,包括:

第一识别模块,用于识别预设即时通讯软件的聊天窗口;

截图模块,用于若接收到针对所述聊天窗口的预设键盘消息或预设鼠标消息,则对所述聊天窗口截图,得到聊天窗口图片;

第一分割模块,用于根据所述预设即时通讯软件的预设图片分割规则,对所述聊天窗口图片进行分割,得到包括聊天信息的第一目标图片;

第二识别模块,用于采用光学字符识别技术对所述第一目标图片进行字符识别,获取所述第一目标图片中的聊天信息。

可选地,所述第一识别模块包括:

第一识别子模块,用于在启动的进程中识别对应预设即时通讯软件的目标进程;

第二识别子模块,用于识别所述目标进程的当前被激活的窗口是否为聊天窗口;

第一确定子模块,用于若识别所述窗口为聊天窗口,则将所述窗口确定为所述预设即时通讯软件的聊天窗口。

可选地,所述截图模块包括:

第一截图子模块,用于若接收到键盘全局钩子抓取的表示在所述聊天窗口中输入预设按键的消息,则对所述聊天窗口截图,得到聊天窗口图片,其中,所述预设按键为键盘中用于表示在所述聊天窗口中发送聊天内容的按键。

可选地,所述截图模块包括:

第二截图子模块,用于若接收到鼠标全局钩子抓取的表示点击所述聊天窗口中的预设按钮的消息,则对所述聊天窗口截图,得到聊天窗口图片,其中,所述预设按钮为所述聊天窗口中用于发送聊天内容的按钮。

可选地,所述第一分割模块包括:

第二确定子模块,用于当所述预设即时通讯软件的预设图片分割规则包括所述预设即时通讯软件的聊天窗口的布局信息时,根据所述预设即时通讯软件的聊天窗口的布局信息,确定所述聊天窗口图片中用于显示聊天信息的第一目标区域;

第一分割子模块,用于从所述聊天窗口图片中分割出所述第一目标区域,得到包括所述聊天信息的第一目标图片。

可选地,所述装置还包括:

确定模块,用于当所述预设即时通讯软件的预设图片分割规则包括所述预设即时通讯软件的聊天窗口的布局信息时,根据所述预设即时通讯软件的聊天窗口的布局信息,确定所述聊天窗口图片中用于显示聊天成员信息的第二目标区域;

第二分割模块,用于从所述聊天窗口图片中分割出所述第二目标区域,得到包括聊天成员信息的第二目标图片;

第三识别模块,用于采用光学字符识别技术对所述第二目标图片进行字符识别,获取所述第二目标图片中的聊天成员信息。

可选地,所述装置还包括:

去重模块,用于对多次获取到的多个第一目标图片中的多组聊天信息进行去重处理,得到目标聊天信息。

与现有技术相比,本发明包括以下优点:

本发明通过识别预设即时通讯软件的聊天窗口,并在接收到该聊天窗口的预设键盘消息或预设鼠标消息时,即在用户发送聊天内容的第一时间,对所述聊天窗口截图,并对截取的图片进行聊天信息区域的分割,最后,对包含聊天信息的分割图片进行光学字符识别,从而能够在用户每次发送聊天信息时,第一时间获取到用户与其他聊天成员当前的聊天记录信息,即便该聊天窗口采用directui架构设计,本发明实施例的方法也能够通过截取聊天窗口中包含聊天信息的子图片的方式来准确的获取到用户的聊天信息,实现了对采用directui架构的即时通讯软件的聊天信息的获取,并且,获取的聊天信息的准确度较高且获取时机很及时。

附图说明

图1是本发明的一种聊天信息的获取系统实施例的系统架构图;

图2是本发明的一种聊天信息的获取方法实施例的步骤流程图;

图3是本发明的一种聊天信息的获取装置实施例的结构框图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

参照图1,示出了本发明的一种聊天信息的获取系统实施例的系统架构图。

该系统包括三层架构,分别为聊天窗口识别层、窗口截图处理层、聊天内容获取层。

其中,聊天窗口识别层,负责识别预设即时通讯软件的进程,并查找激活的聊天窗口,对找到的聊天窗口进行截图处理;窗口截图处理层,调用图片分割引擎模块和图片分割规则库,对聊天窗口识别层截取的图片进行分割处理,将分割处理好的图片传递给聊天内容获取层;聊天内容获取层,通过ocr模块,获取分割图片上的文字信息,并调用聊天记录上传模块将文字信息,即聊天记录上传到服务器。

聊天窗口识别层,位于总体架构的最上层,安装有键盘全局钩子和鼠标全局钩子。其中。微软系统可以自带消息钩子,自带的消息钩子包括全局钩子和局部钩子,不论是全局钩子还是局部钩子又分很多类型,以全局钩子为例,可以包括键盘全局钩子和鼠标全局钩子等。微软系统提供消息钩子机制,负责向系统注册的自有模块或第三方模块调度消息钩子。

如图1所示,聊天窗口识别层由进程监控模块、进程识别模块、键盘/鼠标消息获取模块、聊天窗口分析模块、窗口截图模块组成。

窗口截图处理层,位于总体架构的中间层,由图片分割引擎模块、聊天截图处理模块、图片分割规则库组成。

聊天内容获取层,位于总体架构的最下层,由ocr模块、聊天内容处理模块、聊天记录上传模块组成。

对于上述图1中三层架构中各个模块的具体功能,这里结合图2所示的本发明的一种聊天信息的获取方法实施例的步骤流程图进行详细阐述,如图2所示,该方法具体可以包括如下步骤:

步骤101,识别预设即时通讯软件的聊天窗口;

其中,这里的预设即时通讯软件可以是现有即时通讯app中的任意一种,本发明对此并不限定。

本发明实施例通过预先设置一些需要监控的即时通讯软件的例如包名、进程名、文件中存储的原始文件名、文件的哈希值等标识信息,从而可以在运行的进程中识别到预设即时通讯软件,然后,再识别该即时通讯软件的聊天窗口。

其中,在识别即时通讯软件的聊天窗口时,可以采用已知的任意一种识别软件的聊天窗口的方法来实现,这里介绍一下本发明实施例所采用的聊天窗口的识别方法。

在一个实施例中,在执行步骤101时,可以通过以下子步骤来实现:

s11,在启动的进程中识别对应预设即时通讯软件的目标进程;

参照图1,当本发明实施例的系统启动后,聊天窗口识别层可以向微软系统注册键盘全局钩子和鼠标全局钩子,然后,启动进程监控模块,监控系统中进程的变动。其中,进程监控模块,负责监控计算机系统中各个进程的启动和关闭,并将启动的进程的进程信息(例如程序名、属性信息(例如版本号)等)发送给进程识别模块;

进程识别模块,负责根据接收到的进程信息判断启动的进程是否为预设即时通讯软件,例如,进程识别模块预先设置了即时通讯类软件的进程信息,例如包括程序名、属性信息等,那么可以将接收到的启动的某个进程的进程信息与该预先设置的属于即时通讯类软件的进程信息进行匹配,如果匹配一直,则可以确定这里监控到的启动的进程为预设即时通讯软件。

这里的进程信息之所以还包括进程的属性信息,原因在于各个程序之间存在程序名重名的情况,则单独的依靠程序名则无法准确的判断启动的进程是否为即时通讯类软件,因此,还可以进一步的匹配属性信息等,从而准确的识别到启动的进程中是否包括预设即时通讯软件的进程。

如果经过进程识别模块的上述匹配操作,确定启动的进程中存在预设即时通讯软件的目标进程,也就是说,目前启动的进程中存在即时通讯类软件。

s12,识别所述目标进程的当前被激活的窗口是否为聊天窗口;

其中,由于并非启动的即时通讯软件,用户就是在进行聊天操作,也许只是处于登录在线状态,用户未进行聊天操作。因此,在本实施例中,进程识别模块还可以将识别到的为即时通讯类软件的进程传递给聊天窗口分析模块,由聊天窗口分析模块分析该进程的当前被激活的窗口是否为聊天窗口。

聊天窗口分析模块预先设置了各个预设即时通许软件的聊天窗口的属性信息(例如窗口标题、窗口类型、窗口大小等),那么聊天窗口分析模块可以获取该目标进程的当前被激活的窗口的属性信息,将该属性信息与预先设置的该目标进程对应的即时通讯软件的聊天窗口的属性信息进行匹配,如果匹配一致,则说明该目标进程的当前被激活的窗口为聊天窗口,否则,不是聊天窗口。

其中,在识别某个进程的当前被激活的窗口是否为聊天窗口时,可以采用已知方法中的任意一种方法来实现,也可以采用本发明实施例的方法的匹配方式来实现,本发明对此并不限定。

s13,若识别所述窗口为聊天窗口,则将所述窗口确定为所述预设即时通讯软件的聊天窗口。

其中,如果聊天窗口分析模块识别到该启动的某个预设即时通讯软件的进程的当前被激活的窗口为聊天窗口,可以将该当前被激活的窗口确定为该识别到的预设即时通讯软件的聊天窗口。

这样,本发明实施例首先在启动的进程中识别属于预设的即时通讯类软件的进程,并在识别到属于即时通讯类软件的目标进程中识别其当前被激活的窗口是否为聊天窗口,如果识别到为聊天窗口,才会将该目标进程的当前被激活的窗口确定为对应即时通讯软件的聊天窗口,从而进行后续的聊天内容获取操作。

步骤102,若接收到针对所述聊天窗口的预设键盘消息或预设鼠标消息,则对所述聊天窗口截图,得到聊天窗口图片;

对于聊天窗口而言,如果该聊天窗口采用的directui架构的界面,则采用传统技术中的聊天内容的获取方法无法对该聊天窗口获取到聊天内容,因为,该聊天窗口只是一个容器,其并不具有任何聊天内容,那么本发明实施例的方法为了解决此问题,可以对该聊天窗口进行截图操作,得到的聊天窗口图片中必然是显示有聊天信息的。

而对于截图操作的时机而言,如果无目的的随时进行截图,则不仅会降低系统的性能,也无法确保截取的图片中是否有聊天信息,以及其是否完整。所以,在本发明实施例中,会结合键盘/鼠标消息获取模块所取得的信息来决定何时去进行截图操作。

具体而言,本发明实施例的方法可以在用户对该聊天窗口触发聊天消息的发送操作时进行窗口的截图,从而可以准确的截取到包含有聊天信息的窗口图片。对于图1中的键盘/鼠标消息获取模块可以从键盘全局钩子、鼠标全局钩子中获取信息,那么如果获取到的信息为预设键盘消息或者预设鼠标信消息,则说明用户对该聊天窗口触发了聊天消息的发送操作。

在一个实施例中,在执行步骤102时,若接收到键盘全局钩子抓取的表示在所述聊天窗口中输入预设按键的消息,则对所述聊天窗口截图,得到聊天窗口图片,其中,所述预设按键为键盘中用于表示在所述聊天窗口中发送聊天内容的按键。

其中,每个即时通讯软件的聊天窗口都会设置有表示将当前编辑的聊天内容发送给当前正在聊天的聊天成员的热键或热键组合,例如“回车”、“回车+alt”、“回车+shift”等等,那么键盘全局钩子可以抓取到表示在该聊天窗口中输入任意一个按键的消息,但是,本发明实施例的方法只有在键盘全局钩子抓取到表示在聊天窗口中输入预设按键(例如回车”、“回车+alt”、“回车+shift”等等)的消息时,才会对聊天窗口进行整体截图。

其中,本发明实施例的键盘/鼠标消息获取模块可以获取到键盘全局钩子抓取的消息,并发送至聊天窗口分析模块。那么如果聊天窗口分析模块从键盘/鼠标消息获取模块中接收到键盘全局钩子抓取的表示在所述聊天窗口中输入预设按键的消息,则说明用户正在使用键盘中的发送消息按键,并已经将编辑的聊天内容发送至聊天成员,这时,本发明实施例的聊天窗口分析模块就可以调用窗口截图模块来对该当前的聊天窗口进行整体截图操作,即,将该聊天窗口整体进行截图,得到一个完整的聊天窗口的图片。显然,这里的截图中会包括用户触发键盘上的发送消息的按键后所发送的聊天内容的。

这样,本发明实施例在接收到键盘全局钩子抓取的表示在聊天窗口中输入预设按键的消息时,就会对该即时通讯软件的当前被激活的窗口进行窗口的整体截图,从而能够用户发送聊天内容的第一时间及时地捕获到用户发送的聊天内容,以及该聊天内容之前的部分聊天记录,其中,所述预设按键为键盘中用于表示在所述聊天窗口中发送聊天内容的按键。

在另一个实施例中,在执行步骤102时,若接收到鼠标全局钩子抓取的表示点击所述聊天窗口中的预设按钮的消息,则对所述聊天窗口截图,得到聊天窗口图片,其中,所述预设按钮为所述聊天窗口中用于发送聊天内容的按钮。

其中,每个即时通讯软件的聊天窗口都会设置有表示将当前编辑的聊天内容发送给当前正在聊天的聊天成员的预设按钮,例如“发送”按钮,那么鼠标全局钩子可以抓取到表示在该聊天窗口中点击(该点击可以是鼠标左键单击、鼠标右键单击、鼠标左键双击等等点击操作,本发明对此并不限定)任意一个按钮的消息,但是,本发明实施例的方法只有在鼠标全局钩子抓取到表示点击(例如这里指代左键单击)所述聊天窗口中的预设按钮(例如“发送”按钮)的消息时,才会对聊天窗口进行整体截图。

其中,本发明实施例的键盘/鼠标消息获取模块可以获取到鼠标全局钩子抓取的消息,并发送至聊天窗口分析模块。那么如果聊天窗口分析模块从键盘/鼠标消息获取模块中接收到鼠标全局钩子抓取的表示点击所述聊天窗口中的预设按钮的消息,则说明用户正在使用鼠标中的左键单击聊天窗口中的“发送”按钮,并已经将编辑的聊天内容发送至聊天成员,这时,本发明实施例的聊天窗口分析模块就可以调用窗口截图模块来对该当前的聊天窗口进行整体截图操作,即,将该聊天窗口整体进行截图,得到一个完整的聊天窗口的图片。显然,这里的截图中会包括用户使用鼠标左键单击聊天窗口中的“发送”按钮后所发送的聊天内容。

这样,本发明实施例在接收到鼠标全局钩子抓取的表示点击所述聊天窗口中的预设按钮的消息时,就会对该即时通讯软件的当前被激活的窗口进行窗口的整体截图,从而能够用户发送聊天内容的第一时间及时地捕获到用户发送的聊天内容,以及该聊天内容之前的部分聊天记录,其中,所述预设按钮为所述聊天窗口中用于发送聊天内容的按钮。

步骤103,根据所述预设即时通讯软件的预设图片分割规则,对所述聊天窗口图片进行分割,得到包括聊天信息的第一目标图片;

本发明实施例图1所示的系统启动后,窗口截图处理层可以读取并加载图片分割规则库,然后,对图片分割引擎模块进行初始化,接着,等待接收聊天窗口识别层的截图通知。其中,该截图通知中包括步骤102中截取的聊天窗口图片。

当聊天窗口识别层中的聊天窗口识别模块进行截图操作后,可以将得到的聊天窗口图片以截图通知的方式传递给窗口截图处理层中的聊天截图处理模块;

聊天截图处理模块可以调用图片分割引擎以及图片分割规则库来对接收到的聊天窗口图片进行分割。

其中,图片分割规则库包括不同的预设即时通讯软件的聊天窗口的图片分割规则。

这里,聊天截图处理模块可以从图片分割规则库中提取当前识别到的预设即时通讯软件的图片分割规则(即预设图片分割规则);然后,调用图片分割引擎模块根据该预设即时通讯软件的预设图片分割规则,对接收到的聊天窗口图片进行分割,得到包括聊天信息的第一目标图片。

其中,由于聊天窗口图片中可以分为多个不同区域,例如聊天信息区域、聊天成员信息区域、编辑聊天内容的区域等等。这里,根据该即时通讯软件的图片分割规则来对该聊天窗口图片进行分割,从而可以分割出聊天信息区域,即第一目标图片。

其中,在一个实施例中,所述预设即时通讯软件的预设图片分割规则可以包括所述预设即时通讯软件的聊天窗口的布局信息;

也就是说,图片分割规则库中对不同即时通讯软件的聊天窗口的布局信息进行了记录,这里聊天窗口为采用directui架构的界面,该聊天窗口作为一个容器,开发人员在该窗口里面单独绘制了很多个控件,这些控件没有子窗口的概念,但是其中的某个子窗口却用于显示聊天记录,而本实施例的聊天窗口的布局信息则记录了该聊天窗口中各个控件在整个聊天窗口中的布局信息,那么根据该布局信息就可以从聊天窗口图片中锁定用于记录聊天记录的控件的所在区域。即,在执行步骤103时,可以通过根据所述预设即时通讯软件的聊天窗口的布局信息,确定所述聊天窗口图片中用于显示聊天信息的第一目标区域;从所述聊天窗口图片中分割出所述第一目标区域,得到包括所述聊天信息的第一目标图片。这里的第一目标图片即为整个聊天窗口图片中用于记录聊天记录的控件的所在区域。

举例来说,根据该布局信息,可以确定从该聊天窗口图片的距离边缘多少尺寸来分割图片,从而得到第一目标图片。

这样,本发明实施例就可以根据当前所识别的预设即时通讯软件的聊天窗口的布局信息,来从该软件的聊天窗口的图片中分割出包含聊天记录,也即聊天信息的区域,从而得到第一目标图片。

然后,聊天截图处理模块就可以将分割后的图片,这里为第一目标图片以通知的方式传递给聊天内容获取层的聊天内容处理模块。

步骤104,采用光学字符识别技术对所述第一目标图片进行字符识别,获取所述第一目标图片中的聊天信息。

如图1所示,当本发明实施例的系统启动后,可以对ocr(光学字符识别)模块初始化,然后,对聊天记录上传模块初始化,接着,就等待上层聊天截图处理模块的通知,如果检测到通知,则聊天内容处理模块可以从通知中获取到第一目标图片,并调用ocr模块来对该第一目标图片进行字符识别,从而获取到该第一目标图片中的聊天信息,并调用聊天记录上传模块来将识别到聊天信息上传到服务器,以便用于事后审计、追溯,及时防止泄密事件的发生。

其中,在使用ocr技术进行图片的字符识别时,可以采用已知的且成熟的ocr技术以及其他相关辅助技术来完成。

其中,ocr模块,负责识别指定图片上的文字信息;聊天内容处理模块,负责接收上层传递的通知,该通知包括分割后的图片,其中,通知中的图片并不限于一个图片,可以是分割后的多个图片。

可选地,在一个实施例中,由于每当聊天窗口分析模块接收到针对上述同一个聊天窗口(指代窗口id为同一个的聊天窗口)的预设键盘消息或预设鼠标消息时,也即,每当用户发送一次聊天消息时,本发明实施例的方法就会执行上述步骤102~步骤104,即对该聊天窗口截图,以及对截图后的窗口进行聊天信息区域的分割,最后,对分割后的包括聊天区域的聊天信息进行字符识别。换句话说,每当用户在例如app1的聊天窗口内发送一次聊天信息,本发明实施例的方法就可以获取一次该聊天窗口中当前显示的所有聊天信息,显然,多次获取到的聊天信息中必然存在重复的聊天内容。

因此,在本发明实施例中,在步骤104之后,根据本发明实施例的方法还可以包括:

对多次获取到的多个第一目标图片中的多组聊天信息进行去重处理,得到目标聊天信息。

继续参照图1,聊天内容处理模块每收到一次上层的同一个聊天窗口的第一目标图片,就会对接收到的第一目标图片进行ocr字符识别,从而在用户发送消息的每个时间点上,确定同一聊天窗口中所分别显示的聊天记录,即上述多组聊天信息。由于聊天窗口中所显示的聊天记录是一点一点向上推的方式进行更新的,所以,多组聊天信息中必然存在重复的聊天信息,因此,聊天内容处理模块可以对多组聊天信息进行去重处理,即去除重复的聊天信息,从而得到用户在本次聊天中的完整又准确的目标聊天信息。最后,聊天内容处理模块再调用聊天记录上传模块将该目标聊天信息上传到服务器。避免服务器侧存储过多重复的聊天信息,提升了服务器内存的利用率。

借助于本发明上述实施例的技术方案,本发明通过识别预设即时通讯软件的聊天窗口,并在接收到该聊天窗口的预设键盘消息或预设鼠标消息时,即在用户发送聊天内容的第一时间,对所述聊天窗口截图,并对截取的图片进行聊天信息区域的分割,最后,对包含聊天信息的分割图片进行光学字符识别,从而能够在用户每次发送聊天信息时,第一时间获取到用户与其他聊天成员当前的聊天记录信息,即便该聊天窗口采用directui架构设计,本发明实施例的方法也能够通过截取聊天窗口中包含聊天信息的子图片的方式来准确的获取到用户的聊天信息,实现了对采用directui架构的即时通讯软件的聊天信息的获取,并且,获取的聊天信息的准确度较高且获取时机很及时。

可选地,在另一个实施例中,所述预设即时通讯软件的预设图片分割规则包括所述预设即时通讯软件的聊天窗口的布局信息。

相应的,在步骤102之后,根据本发明实施例的方法还可以识别聊天窗口中的聊天成员信息,即与当前用户进行聊天的一个或多个用户(即一个群组中的聊天成员)的信息,具体而言,根据本发明实施例的方法还可以包括:

根据所述预设即时通讯软件的聊天窗口的布局信息,确定所述聊天窗口图片中用于显示聊天成员信息的第二目标区域;

如上述实施例所述,该布局信息中可以记录该预设即时通讯软件的聊天窗口中不同控件的显示区域的布局信息,因此,来利用图片分割规则库中的预设图片分割规则来确定聊天窗口图片中待分割的各个区域时,不仅可以确定出用于显示聊天信息的第一目标区域,还可以确定出用于显示聊天成员信息的第二目标区域。

从所述聊天窗口图片中分割出所述第二目标区域,得到包括聊天成员信息的第二目标图片;

同样的,聊天截图处理模块可以调用图片分割引擎模块来从该聊天窗口图片中分割出该第二目标区域,从而得到包括聊天成员信息的第二目标图片。

其中,所谓聊天成员信息,即与该当前用户进行聊天的聊天成员的属性信息,例如名片信息(昵称、该预设即时通讯软件的账号id等信息)。

采用光学字符识别技术对所述第二目标图片进行字符识别,获取所述第二目标图片中的聊天成员信息。

其中,该步骤的具体实现原理与步骤104类似,这里不再赘述。

这样,本发明实施例的方法不仅可以对采用directui结构的聊天界面获取到聊天信息,还可以获取到用户正在聊天的聊天成员的相关属性信息,将这两者信息一起上传到服务器保存,如果发生敏感信息的泄密,则不仅可以知道敏感信息是由哪个内部成员泄露的,还能够知道该内部成员将信息泄露给谁,从而便于维权。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。

与上述本发明实施例所提供的方法相对应,参照图3,示出了本发明一种聊天信息的获取装置实施例的结构框图,具体可以包括如下模块:

第一识别模块31,用于识别预设即时通讯软件的聊天窗口;

截图模块32,用于若接收到针对所述聊天窗口的预设键盘消息或预设鼠标消息,则对所述聊天窗口截图,得到聊天窗口图片;

第一分割模块33,用于根据所述预设即时通讯软件的预设图片分割规则,对所述聊天窗口图片进行分割,得到包括聊天信息的第一目标图片;

第二识别模块34,用于采用光学字符识别技术对所述第一目标图片进行字符识别,获取所述第一目标图片中的聊天信息。

可选地,所述第一识别模块31包括:

第一识别子模块,用于在启动的进程中识别对应预设即时通讯软件的目标进程;

第二识别子模块,用于识别所述目标进程的当前被激活的窗口是否为聊天窗口;

第一确定子模块,用于若识别所述窗口为聊天窗口,则将所述窗口确定为所述预设即时通讯软件的聊天窗口。

可选地,所述截图模块32包括:

第一截图子模块,用于若接收到键盘全局钩子抓取的表示在所述聊天窗口中输入预设按键的消息,则对所述聊天窗口截图,得到聊天窗口图片,其中,所述预设按键为键盘中用于表示在所述聊天窗口中发送聊天内容的按键。

可选地,所述截图模块32包括:

第二截图子模块,用于若接收到鼠标全局钩子抓取的表示点击所述聊天窗口中的预设按钮的消息,则对所述聊天窗口截图,得到聊天窗口图片,其中,所述预设按钮为所述聊天窗口中用于发送聊天内容的按钮。

可选地,所述第一分割模块33包括:

第二确定子模块,用于当所述预设即时通讯软件的预设图片分割规则包括所述预设即时通讯软件的聊天窗口的布局信息时,根据所述预设即时通讯软件的聊天窗口的布局信息,确定所述聊天窗口图片中用于显示聊天信息的第一目标区域;

第一分割子模块,用于从所述聊天窗口图片中分割出所述第一目标区域,得到包括所述聊天信息的第一目标图片。

可选地,所述装置还包括:

确定模块,用于当所述预设即时通讯软件的预设图片分割规则包括所述预设即时通讯软件的聊天窗口的布局信息时,根据所述预设即时通讯软件的聊天窗口的布局信息,确定所述聊天窗口图片中用于显示聊天成员信息的第二目标区域;

第二分割模块,用于从所述聊天窗口图片中分割出所述第二目标区域,得到包括聊天成员信息的第二目标图片;

第三识别模块,用于采用光学字符识别技术对所述第二目标图片进行字符识别,获取所述第二目标图片中的聊天成员信息。

可选地,所述装置还包括:

去重模块,用于对多次获取到的多个第一目标图片中的多组聊天信息进行去重处理,得到目标聊天信息。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本发明所提供的一种聊天信息的获取方法和一种聊天信息的获取装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1