发明内容
有鉴于此,本发明的目的在于提供一种实现UC业务的方法和UC客户端,方便、灵活获取通信信息,实现UC业务。
根据本发明的实现UC业务的方法包括:UC客户端获取所在终端所显示的通信信息,并根据所获取的通信信息实现UC业务。
在上述方法中,所述UC客户端获取通信信息包括:UC客户端通过屏幕取词方式获取其所在终端显示的鼠标当前位置区域内的通信信息。
在上述方法中,所述通信信息包括电话号码、电子邮件地址和/或用户帐号信息。
在上述方法中,所述通过屏幕取词方式获取通信信息包括:
a、UC客户端截取其所在终端的鼠标所在窗口进程的鼠标移动事件,向该鼠标所在窗口进程发送重画窗口事件通知;鼠标所在窗口进程接收到该通知后重画窗口,并调用该UC客户端打印字符串;UC客户端打印该窗口进程所要打印的字符串,并判断该字符串是否在鼠标当前位置区域内;
b、当判定该字符串在鼠标当前位置区域内时,判断该字符串是否为通信信息;
c、当判定该字符串为通信信息时,获取该字符串,并执行所述针对所获取的通信信息实现UC业务的步骤。
在上述方法中,所述步骤a进一步包括:UC客户端在发送重画窗口事件通知之前,读取预先设置的获取显示通信信息的触发条件,判断截取到鼠标移动事件是否满足相应的触发条件,并在满足触发条件时发送重画窗口事件通知。
在上述方法中,所述获取显示通信信息的触发条件包括:鼠标在屏幕中某个位置区域内的停留时间达到预先设定值,和/或,一个或一个以上鼠标按键被激活,和/或,一个或一个以上键盘按键被激活。
在上述方法中,当所述通信信息为电话号码时,步骤b中,所述判断字符串是否为通信信息的步骤包括:
b1、UC客户端获取沿一个横向方向距离鼠标位置最近的字符;
b2、判断该字符是否是数字或电话号码连接符,如果是,则执行步骤b3;否则,执行步骤b4;
b3、对应于显示的位置存储该字符,并继续沿该方向获取下一个字符,然后执行b2;
b4、获取沿另一横向方向距离鼠标位置最近的字符;
b5、判断该字符是否是数字或电话号码连接符,如果是,则执行b6;否则,执行b7;
b6、对应于显示的位置存储该字符,并继续沿该方向获取下一个字符,然后执行b5;
b7、判断所存储字符串的长度是否在设置的最小号码长度和最大号码长度范围内,如果是,则执行b8;否则,执行b9;
b8、判定该字符串为通信信息,结束本流程;
b9、判定该字符串为非通信信息。
在上述方法中,所述针对所获取的通信信息实现UC业务包括:在屏幕中显示设置的包含UC业务菜单并可供用户操作从该菜单中选择UC业务的浮动窗口,基于接收到的用户操作指令执行相应UC业务,且该业务包括向该通信信息所对应的用户发起呼叫、发送短信、发送电子邮件和/或将该通信信息存储到该UC客户端的通信录中。
根据本发明的一种UC客户端包括UC业务实现单元和显示通信信息获取单元,其中,显示通信信息获取单元用于获取所在终端显示的通信信息;UC业务实现单元用于针对该UC客户端所获取的通信信息实现UC业务。
在上述客户端中,所述显示通信信息获取单元用于通过屏幕取词方式获取所在终端显示的鼠标当前位置区域内的通信信息。
在上述客户端中,所述UC业务实现单元用于截取所在终端的鼠标所在窗口进程的鼠标移动事件,并向该鼠标所在窗口进程发送重画窗口事件通知,并针对该UC客户端获取的通信信息实现UC业务;所述显示通信信息获取单元用于根据鼠标所在窗口进程的调用指令打印该窗口进程所要打印的字符串,并获取所在终端显示的鼠标当前位置区域内的通信信息。
综上所述,本发明采取由UC客户端按照屏幕取词方式获取其所在终端显示的鼠标当前位置区域内的通信信息,并针对所获取的通信信息实现UC业务。其中,获取的通信信息可以包括电话号码、电子邮件地址和/或用户帐号信息等。UC业务具体可以包括向该通信信息所对应的用户发起呼叫、发送短信和电子邮件以及将该通信信息存储到UC客户端的通信录中等。从而使得用户只需通过在屏幕或当前任务窗口或当前界面中移动鼠标或按下相应的按键就可以实现相应通信信息在UC客户端的录入,避免了现有技术中由用户在UC客户端界面中手工输入相应通信信息或手工查询通信录的繁琐操作,减轻用户的负担。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
本发明的核心思想是:UC客户端通过屏幕取词方式获取其所在终端显示的鼠标当前位置区域内的通信信息,并针对所获取的通信信息实现UC业务。其中,获取的通信信息可以包括电话号码、电子邮件地址和/或用户帐号信息等。UC业务具体可以包括向该通信信息所对应的用户发起呼叫、发送短信和电子邮件以及将该通信信息存储到UC客户端的通信录中等。从而避免现有技术中在实现相应UC业务时,由用户在UC客户端界面中手工输入相应通信信息或手工查询通信录的繁琐操作,减轻用户的负担。
下面通过具体实施例详细说明本发明的方法。在该实施例方法中,UC客户端获取所在终端所显示的通信信息为鼠标当前位置区域内的通信信息,并且需要在UC客户端中预先设置从屏幕中获取通信信息的功能,且该方法流程如图1a所示,具体包括如下步骤:
步骤100:UC客户端通过屏幕取词方式获取其所在终端显示的鼠标当前位置区域内的通信信息。
其中,本步骤的具体实施方式可以根据业务需要或用户喜好进行设置。例如,可以采取:当鼠标在屏幕中某个位置区域内的停留时间达到预先设定的值,如:0.2秒时,由UC客户端获取屏幕中鼠标所在位置区域内的相应通信信息;或者,当鼠标的某个按键,如:鼠标左键、中键或右键等按键被激活,或者其中任意两个鼠标按键被组合激活时,UC客户端获取鼠标当前所在位置区域内的通信信息。另外,也可以是其它方式,例如:当某个或某几个键盘按键,如:控制(Ctrl)键被激活,或者某个或某几个鼠标按键与某个或某几个键盘按键被组合激活时,UC客户端获取鼠标当前所在位置区域内的通信信息。
步骤200:UC客户端针对所获取的通信信息触发并实现相应的UC业务。
其中,触发的UC业务的方式具体可以是在终端屏幕中显示设置的包含UC业务菜单并可供用户操作从该菜单中选择UC业务的浮动窗口,基于接收到的用户操作指令执行相应UC业务。浮动窗口的示意图如图2所示。例如:可以通过该浮动窗口提供可供用户选择要进行的UC业务的菜单,当用户选取了该菜单中的某个选项后,该UC客户端就可以按照正常的流程实现所选择的相应UC业务。其中,浮动窗口的菜单选项具体可以包括:向该通信信息所对应的用户打电话、发短信以及将该通信信息保存到客户端的通信录中等。用户可以通过点击按钮的方式选取菜单中的任意选项,例如,当用户点击打电话按钮后,该UC客户端就调用打电话接口函数向鼠标指向的电话号码发起呼叫;当用户点击发短信按钮后,该UC客户端控制在屏幕中显示发送短信窗口,并将发送电话号码自动填为屏幕上取得的电话号码。当用户点击保存通信信息的按钮之后,UC客户端在屏幕中显示将该通信信息加入通信录的界面,并将该通信信息自动拷贝到相应的电话号码输入框。并且本步骤中所述的UC客户端针对所获取的通信信息实现UC业务的具体方式与现有的UC客户端在接收到由用户通过UC客户端界面手工输入的通信信息时的处理方式完全相同,此处不再赘述。
下面通过一个实施例详细说明上述步骤100的具体实现方式,在该实施例中,假设UC客户端获取鼠标当前所在位置区域内的通信信息的触发条件为鼠标在某一位置停留的时间超过预先设定值。该方法流程如图1b所示,具体包括如下步骤:
步骤101:UC客户端截取其所在终端的鼠标所在窗口进程的鼠标移动事件,且该鼠标移动事件中携带有鼠标所在窗口的实例号以及鼠标的当前位置信息。
其中,UC客户端所在终端可以是用户PC等,而UC客户端所在终端使用的操作***可以是Windows或Linux等操作***。并且UC客户端截取其所在终端的鼠标移动事件的方式可以是通过其所在终端使用的操作***的接口函数来截取。
另外,本步骤101可以通过在UC客户端所在终端使用的操作***中安装鼠标钩子来实现,并且在操作***中安装鼠标钩子后,当鼠标移动时,操作***就会将相应的鼠标移动事件发送给UC客户端,且在该鼠标移动事件中携带鼠标的当前位置信息以及鼠标所在窗口的实例号。
步骤102:UC客户端截取到鼠标移动事件后,读取预先设置的获取显示通信信息的触发条件,并判断该鼠标移动事件是否满足相应触发条件,如果是,则执行步骤103;否则,对本次鼠标移动事件不作处理,结束本流程。
在该步骤102中,如上所述,设置的获取显示通信信息的触发设置具体可以是鼠标在屏幕中某个位置区域内的停留时间达到预先设定的值,也可以是一个或一个以上鼠标按键被激活,和/或,一个或一个以上键盘按键被激活等。此处以鼠标在固定位置的停留时间超过预先设定值为触发条件进行说明,当UC客户端读取到预先设置的触发条件为鼠标在固定位置的停留时间达到0.2秒时,启动定时器开始计时,并当该定时器超时时,执行后续步骤103;而当该UC客户端在该定时器超时前又接收到新的鼠标移动事件,则删除该定时器,并设置新定时器重新开始计时。以上说明了以鼠标在固定位置的停留时间超过预先设定值为触发条件时的处理方式,本实施例也可以采取以UC客户端接收到某个或某几个鼠标按键或/和键盘按键被激活事件为触发条件,下面对这一情况进行简单说明。当UC客户端读取到预先设置的触发条件为鼠标左键被激活时,检测是否接收到鼠标左键的激活事件,如果是,则执行后续步骤103;否则,判定本次鼠标移动事件不满足设定的触发条件,不对本次鼠标移动事件进行处理。
步骤103:UC客户端截取到其所在终端的鼠标所在窗口进程的鼠标移动事件后,向该鼠标所在窗口进程发送重画窗口事件通知;鼠标所在窗口进程接收到该通知后重画窗口,并调用该UC客户端打印字符串;UC客户端打印该窗口进程所要打印的字符串,并判断该字符串是否在鼠标当前位置区域内,如果是,则执行步骤104;否则,对该字符串不作处理,结束本流程;
其中,该步骤103可以具体包括如下步骤:
步骤1031:UC客户端根据所接收鼠标移动事件中携带的鼠标所在窗口的实例号获取该窗口进程在内存中的基地址,并根据该基地址获取该窗口进程调用相应用于打印屏幕中字符串的函数的地址,并将该地址替换为自身客户端***中用于获取显示通信信息的函数的地址。
其中,该步骤中所述的用于打印屏幕中字符串的函数可以是Windows操作***中的Textouta函数。
步骤1032:UC客户端向鼠标所在窗口进程发送重画窗口事件通知,鼠标所在窗口进程接收到该重画窗口事件通知后,调用UC客户端中用于获取显示通信信息的函数,并向其传递所要打印字符串的参数信息,该参数信息包括字符串的内容和位置信息。
在本步骤中,当鼠标所在窗口进程接收到该重画窗口事件通知后,本来是要调用用于打印屏幕中字符串的函数,但由于该地址已经替换为UC客户端中用于获取显示通信信息的函数的地址,从而实现调用UC客户端中用于获取显示通信信息的函数。另外,鼠标所在窗口进程接收到重画窗口事件通知后,可以根据***设置只调用一次UC客户端中用于获取显示通信信息的函数,也可以多次调用该函数。
步骤1033:UC客户端通过其用于获取显示通信信息的函数打印该窗口进程所要打印的字符串,并判断该字符串是否在鼠标当前位置区域内,如果是,则执行步骤104;否则,对该字符串不作处理,结束本流程。
其中,UC客户端通过其用于获取显示通信信息的函数调用原鼠标所在窗口进程调用的用于打印屏幕中字符串的函数,如Textouta函数打印相应字符串。并且UC客户端可以根据在上述步骤101中获取的鼠标移动事件中携带的鼠标的当前位置信息判断相应要打印的字符串是否在鼠标的当前位置区域内。
步骤104:UC客户端通过其用于获取显示通信信息的函数判断该字符串是否为通信信息,如果是,则执行步骤105;否则,对该字符串不作处理,结束本流程。
其中,判断字符串是否为通信信息的步骤可以采取由UC客户端中用于获取显示通信信息的函数判断鼠标指针左右的字符串是否符合通信信息的特征来实现。
步骤105:UC客户端获取该字符串,并将其存储在自身***的变量中。
另外,在上述步骤1032中,当鼠标所在窗口进程需要多次调用UC客户端中用于获取显示通信信息的函数时,则会在一次鼠标移动事件中多次调用该函数,并且也会相应地多次执行上述后续步骤1033至步骤105。
以上说明了本发明步骤100的一种具体执行方式,下面详细说明上述步骤104,即判断所要打印的字符串是否为通信信息的步骤。假设该通信信息为电话号码,则该通信信息的特征可以定义为:字符串长度在设置的最短电话号码长度和最长电话号码长度之间且允许使用区号连接符的数字字符串。其中,最短电话号码长度、最长电话号码长度以及区号连接符可以由UC客户端统一配置。该步骤流程如下:
步骤1041:UC客户端获取沿一个横向方向,如向右的方向距离鼠标位置最近的字符。
步骤1042:判断该字符是否是数字或电话号码连接符,如果是,则执行步骤1043;否则,执行步骤1044。
步骤1043:对应于屏幕中的位置存储该字符,并继续沿该方向获取下一个字符,然后执行步骤1042。
步骤1044:获取沿另一横向方向,如:向左的方向距离鼠标位置最近的字符。
步骤1045:判断该字符是否是数字或电话号码连接符,如果是,则执行步骤1046;否则,执行步骤1047。
步骤1046:对应于屏幕中的位置存储该字符,并继续沿该方向获取下一个字符,然后执行步骤1045。
步骤1047:判断存储的字符串长度是否在最小号码长度和最大号码长度范围内,如果是,则执行步骤1048;否则,执行步骤1049。
步骤1048:判定该字符串为通信信息,结束本流程。
步骤1049:判定该字符串为非通信信息。
以上说明了上述步骤104的一种具体执行方式。其中,UC客户端采取首先获取向右的方向距离鼠标位置最近的字符,然后获取向左的方向距离鼠标位置最近的字符的方式。显然,该步骤也可以采取由UC客户端首先获取向左的方向距离鼠标位置最近的字符,然后获取向右的方向距离鼠标位置最近的字符的方式。另外,该步骤104也可以采取其它方式,此处仅是举例说明而已,并非限定。
以上说明了根据本发明实现UC业务的具体方法,且在以上对该方法的描述中,主要以由UC客户端通过屏幕取词方式获取其所在终端显示的鼠标当前位置区域内的通信信息为例进行了说明。但本发明不限于此,UC客户端还可以通过其它方式获取其所在终端显示的(或屏幕中)通信信息,例如,UC客户端可以自动获取终端显示的所有通信信息,并使用户可以针对获取的所有通信信息触发并实现相应的UC业务等。
下面说明根据本发明的UC客户端,该客户端包括UC业务实现单元和显示通信信息获取单元;其中,显示通信信息获取单元用于获取该UC客户端所在终端显示的通信信息;所述UC业务实现单元用于针对所获取的通信信息实现UC业务。
其中,上述显示通信信息获取单元可用于通过屏幕取词方式获取UC客户端所在终端显示的鼠标当前位置区域内的通信信息。
而且,上述UC业务实现单元用于截取所在终端的鼠标所在窗口进程的鼠标移动事件,并向该鼠标所在窗口进程发送重画窗口事件通知,并针对该UC客户端获取的通信信息实现UC业务;所述显示通信信息获取单元用于根据鼠标所在窗口进程的调用指令打印该窗口进程所要打印的字符串,并获取所在终端显示的鼠标当前位置区域内的通信信息。
该显示通信信息获取单元可以为获取显示通信信息的函数。
另外,该UC客户端具备本发明的上述实现UC业务的方法中所涉及的所有功能。并且UC业务实现单元针对所获取的通信信息实现UC业务的具体方式与现有的UC客户端在接收到由用户通过UC客户端界面手工输入的通信信息时的处理方式完全相同,此处不再赘述。
由此,通过本发明的实现UC业务的方法以及相应UC客户端使得用户只需直接通过在屏幕中或当前任务窗口或当前界面中移动鼠标或按下相应的按键就可以实现相应通信信息在UC客户端的录入,从而避免了现有技术中由用户在UC客户端界面中手工输入相应通信信息或手工查询通信录的繁琐操作,减轻用户的负担。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。