电脑爱好者,提供IT资讯信息及各类编程知识文章介绍,欢迎大家来本站学习电脑知识。 最近更新 | 联系我们 RSS订阅本站最新文章
电脑爱好者
站内搜索: 
当前位置:首页>> delphi技术>>Delphi屏幕抓字技术揭密:

Delphi屏幕抓字技术揭密

来源:www.cncfan.com | 2006-1-10 | (有1929人读过)

一 公开它!

  四通利方和金山词霸的用户都曾见识过屏幕抓字技术,鼠标指哪就翻译哪个单词,这个技术看似简单,其实在WINDOWS系统中实现却是非常复杂和有趣的。经过半年多的艰辛探索,笔者终于破解了其中的秘密,并在今天决定公开它,这个人人都曾见过但是却鲜有人知的秘密,这个只被
几家软件公司垄断从未在公开的报刊资料披露过只言片语的秘密!

  经过这半年多的探索,现在都终于有了结果:将屏幕抓字技术的秘密公开,献给孜孜不倦辛勤工作的程序员们。

  二 初识屏幕抓字

  最初知道屏幕抓字,是在购买了《英汉通》软件之后。 当时笔者还只是一个VISUAL BASIC 的初学者, 对WINDOWS系统内部的知识了解并不多,认为在WINDOWS系统中屏幕抓字的实现应该和DOS系统中的一样,调用一个DOS中断取屏幕上的字符或直接读显示内存的内容就可以了。

  三 看似很简单,其实不然

  随着对WINDOWS系统的认识不断深入,才发现问题并不象想得那么简单。首先,翻阅了WINODWS应用程序接口(API)中的上千个函数,并没有发现有一个现成的类似于getWordFromPoint()的函数;根据使用经验,经过判断发现屏幕抓字采用的也不是图像识别技术;翻阅了SDK的联机文档中没有,DDK的联机文档中也没有;显示卡编程接口的资料则很难获得,有的也只是CGA到VGA显存的基本知识。回想当时坐在机子前,面对一屏屏的联机资料(如果是纸,将堆积如山),感觉就是在黑暗中的大海里航行,没有方向,没有灯光,但强烈的兴趣紧抓着我,一定要把这个谜解开。

  四 选择合适的编程工具

  突然又有了一些新的想法:可否试着截获WINDOWS中关于字符的消息呢?DC(设备描述表)到底是什么?WINDOWS的TextOut函数是否将TEXT放在DC的某个单元中?显然,用VISUALBASIC就力不从心了。在DOS中用TURBOC编程笔者还算熟练,因此先尝试用VISUALC++,但是奇慢的编译速度使人难以忍受,高度抽象的类让人一头雾水,开发商务软件可能还行,但开发这样一个深入WINDOWS内部的系统软件,望着一堆缠绕不清的类和消息,真有点牛刀宰鸡、刺刀耕田的感觉。

  最后选择了DELPHI,第一印象是编译速度真快,在我的祖父型386机子上编译一个WINDOWS程序,速度和用TURBOC的速度感觉差不多,真让人兴奋得爱不释手。随着不断使用,发觉DELPHI真是一个好的快速开发工具,(快速并不意味着简单粗糙,而是和WINDOWS系统有混然一体良好接口的表现)让初学者也很容易上手。

  调用各种WINDOWS 函数(包括很多未公开的函数)都非常直接迅速,用它来作开发工具,大有刺刀见红、一剑封喉的痛快感觉。

delphi技术热门文章排行
网站赞助商
购买此位置

 

关于我们 | 网站地图 | 文档一览 | 友情链接| 联系我们

Copyright © 2003-2024 电脑爱好者 版权所有 备案号:鲁ICP备09059398号