[发明专利]一种带有划词功能的屏幕取词实现方法有效
申请号: | 201010590534.6 | 申请日: | 2010-12-07 |
公开(公告)号: | CN102043623A | 公开(公告)日: | 2011-05-04 |
发明(设计)人: | 姚敏;尹建伟;吕方敏;阙杭宁;沈正伟;吴朝晖 | 申请(专利权)人: | 浙江大学 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 杭州裕阳专利事务所(普通合伙) 33221 | 代理人: | 江助菊 |
地址: | 310027 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 带有 功能 屏幕 实现 方法 | ||
技术领域
本发明涉及屏幕上的取词方法,尤其是在Windows操作系统下的一种带有划词功能的屏幕取词实现方法。
背景技术
随着信息时代的来临,各式各样的文字信息充斥在人们的电脑上。有时,为了获取屏幕上的词语,用户不得不通过复制、粘贴等一系列繁琐的操作来获得该词,这给用户带来极大不便。人们希望可以通过更简单的操作来提取屏幕上的词语。于是,屏幕上的取词技术应运而生。现有的屏幕上的取词方法主要有两种:
一是屏幕取词,该方法通过移动鼠标来直接提取屏幕上鼠标所在位置的词语,采用该方法,用户获取词语的操作方式简单、快捷,不足之处有二,1.由于分词技术不够成熟,从而导致取到的词语不够准确,与用户的想法不符,2.有些应用软件采用了一些特殊的文字输出方式(如pdf阅读器输出的为图片格式),致使屏幕取词功能在其中完全丧失,给用户的使用带来不便;
二是划词取词,即用户通过拖拽鼠标划取屏幕上的词语来获取词语,与屏幕取词相比,该方法能够更准确地取到屏幕上的词语,可以在一些屏幕取词取不到的地方取词,但取词操作较屏幕取词繁琐。
为克服屏幕取词和划词取词的不足,我们提出将划词取词和屏幕取词结合起来使用的方法,取两者取词之优点。将划词取词和屏幕取词相结合,传统的认识是不能实现的。然而,经过研究我们发现,将屏幕取词和划词取词结合到一起在技术上是完全能够实现的。因为,在Windows操作系统下,屏幕上的文字大多数都是通过动态库GDI32.dll中的ExtTextOutW、ExtTextOutA、TextOutW、TextOutA四个函数输出的,其中ExtTextOutW和TextOutW用于Unicode字符的输出,而ExtTextOutA和TextOutA用于ANSI字符的输出,因此,想要抓取屏幕上的词语只需通过API HOOK技术拦截系统对以上API函数的调用,并从中截获这些函数的参数即可,这便是实现屏幕取词的通用方法。本发明在实现上述传统屏幕取词的基础上,创造性的融入了划词取词的方法,实现了划词取词和屏幕取词的有机结合。
发明内容
本发明的目的在于:提供一种带有划词功能的屏幕取词实现方法,既能方便用户使用,又能保证取词的通用性和准确性。
本发明为解决技术问题所采用的技术方案为:
本发明一种带有划词功能的屏幕取词实现方法,包括以下步骤:
步骤一:安装全局鼠标钩子
在计算机设备Windows操作系统的dll程序中利用SetWindowsHookEx API函数加载全局鼠标钩子,用于捕捉鼠标的各个消息;当鼠标钩子捕捉到鼠标停留消息WM_MOUSEHOVER时,程序执行屏幕取词操作,其中,所述WM_MOUSEHOVER的停留时间,可以根据使用者的习惯设定;当鼠标钩子捕捉到鼠标左键弹起消息WM_LBUTTONUP时,程序执行划词取词操作;
步骤二:屏幕取词
当鼠标悬停的时间超过使用者设定的停留时间,安装的鼠标钩子捕捉到鼠标停留消息WM_MOUSEHOVER后,程序执行以下操作,
a.重画窗口
通过所述鼠标钩子获取鼠标指针在显示器上当前位置的坐标数据,并将此数据保存到计算机设备的内存中,根据坐标数据,在鼠标位置下选取一个1px×1px的微小矩形框,利用API函数InvalidateRect向该矩形框发送重画消息,重画窗口;
b.挂载API钩子,截获API函数
当计算机设备的Windows系统接收到重画消息时,底层的操作系统会立即调用系统动态链接库GDI32.dll中的ExtTextOutW、ExtTextOutA、TextOutW、TextOutA这些API函数来进行文字输出,此时令程序挂载API钩子,通过API钩子截获进程对上述API函数的调用,取得该API函数的参数,从而实现对输出字符串的捕捉;
c.位置匹配
在捕捉到输出字符串后,计算出该字符串所在矩形框的边界的坐标值,然后将计算机内存中存储的当前鼠标坐标位置与该矩形框的边界坐标做比较,如果鼠标位置在矩形框内,证明该字符串就是鼠标当前所指向的字符串,直接输出即可;反之不予输出;
步骤三:划词取词
当鼠标钩子捕捉到鼠标左键弹起消息WM_LBUTTONUP时,程序执行以下操作,
a.保存剪贴板上的内容
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010590534.6/2.html,转载请声明来源钻瓜专利网。