2.金山词霸的工作原理大家都用过金山词霸吧?当你把光标指向一个单词,词霸就会自动弹出一个窗口并把单词的意思翻译出来。这究竟是怎么做出来的呢?我在这里简单说明一下。
( 1 ) 安装鼠标钩子。
( 2 )一旦光标在屏幕上移动,系统就会调用鼠标钩子,词霸通过鼠标钩子能够获得光标的坐标( x , y ) ,并安装TextOut()、ExtTextOut()等API 函数钩子。
(3)词霸向光标下的窗口发重画消息,负责绘制该点的应用程序在收到WM_PAINT 消息后,就可能调用TextOut()、ExtTextOut()等函数重绘字体。
(4)调用的函数将被钩子函数拦截,词霸就能够截获该次调用,从应用程序的数据段中将“文字”指针的内容取出,并作翻译处理。
(5)退出跟踪程序,返回到鼠标钩子,解除对TextOut()、ExtTextOut()等API 函数的跟踪。
(6)完成了一次“屏幕抓字”。
这里的关键有两点:安装鼠标钩子和API 钩子。安装鼠标钩子非常简单,而API 钩子正是取词的核心代码。
3.关于Delphi
事实上,随着互联网的普及,许多秘密都已不再是秘密,API Hook 也一样。在网上,你已经可以找到这样的免费源代码,但是大部分可能已经过时,而且这些源代码大都是基于VC++的。如果你想找到用Delphi 编写的源代码,那么,你还是读一读我的文章吧。
Delphi 是编程工具史上的一个里程碑式的作品。如果你在使用它,我向你表示祝贺。如果你没有使用它,你也没有什么损失。网上关于几种语言谁好谁坏都吵得天翻地覆的了,我不想增加新仇也不想算算旧恨。每种语言都有它的优缺点,每个人都有自己选择的权利嘛!
不过,用Delphi 编写API Hook 有几处“陷阱”。我想,除了介绍API Hook 以外,这也是为什么我要写这篇文章的一个原因吧!
4.哪些人可以读这篇文章
当然,读这篇文章并没有什么限制。但是你最好已经懂得鼠标钩子的制作过程,手边有MSDN 那就再好不过了。我认为,只要你是Windows 的程序员,就一定要有MSDN。原因?有一套就明白啦。如果你懂得PE文件结构,那就更好了。在这篇文章里,我给出了所有的源代码(还不到2 0 0行)。如果你想修改程序,最好用SoftIce。
5.关于我的程序
本文中的程序在Windows Me 的操作环境下,使用Delphi5.0
欢迎访问最专业的网吧论坛,无盘论坛,网吧经营,网咖管理,网吧专业论坛
https://bbs.txwb.com
关注天下网吧微信/下载天下网吧APP/天下网吧小程序,一起来超精彩
|
本文来源:论坛收集 作者:未知