按键精灵的工作原理是什么?

2024-11-17 19:20:59
推荐回答(1个)
回答1:

浅谈对按键精灵的几点思考

所谓“有比较才有鉴别”,只有通过对同类、不同类软件予以横向的、纵向的比较,才能对软件的本身定位有个清晰的认识,而只有对软件自身的定位有了清晰的认识,才能自己更有针对性的发展自己的特色,使按精精灵的开发和使用者能得心应手的完成想要完成的工作。

思考一、按键精灵面向的主要用户群

毫无疑问,按键精灵,顾名思义,是一个能够发送记录或编写的鼠标、键盘操作序列,从而使用者得以从某项原本操作起来既重复因而枯燥无趣的游戏(操作)过程中解脱出来,具体的说,如按键精灵帮助介绍的:

“只要您在电脑前用双手可以完成的动作,按键精灵都可以替您完成。”
“按键精灵能帮我做什么?
* 网络游戏中可作脚本实现自动打怪,自动补血,自动说话等
* 办公族可用它自动处理表格、文档,自动收发邮件等
* 任何你觉得“有点烦”的电脑操作都可以替你完成”

那么,可以看出,软件所面向的主要用户群是:
1. 游戏爱好者
2. 需要辅助办公自动化者
3. 其他有特殊需求者

这三者的比例关系,即软件面向的主体是谁呢?毫无疑问:广大的游戏爱好者,据我个人的看法,至少80%以上使用按键精灵的目的是:游戏!包括我个人,当初知道有按键精灵这个软件,及至后来使用、学习和研究,为的是什么?为的是更好地玩游戏!

有了这个认识之后,我们继续下面的思考。
思考二、按键需要什么样的功能?

对于此问题,一个很简单的回答是:用户需要什么功能,我们就做什么功能!那么在这个认识之下,举凡是能够帮助游戏爱好者(软件的最广大的用户群体)能够更好的游戏的功能都是我们所需要的。然而,似乎还有什么我们必须要考虑的,是什么呢?不错,一个已经令人耳熟能详的名字:外挂!国家对外挂的政策、游戏开发商、运营商以及游戏者对外挂的认识和态度等等,都是我们必须要考虑的。

众所周知,那些破坏游戏平衡性的变态外挂是被国家明令禁止的,而游戏开发商、运营商包括部分游戏爱好者对外挂深恶痛绝,但有句名言“存在的就是合理的”,为什么外挂依旧存在、而且使用者众多呢?笼统的一句话,概括起来就是:游戏里存在不合理的地方。当然这个原因不能做为你使用那些破坏游戏平衡性的变态外挂的借口。但,现在的网游,绝大部分还是“泡菜”,练级的过程无疑是枯燥的、烦味的、令人厌倦的,而某些游戏战斗时不停地补血、补蓝操作更是令人手忙脚乱,除了一个喜欢锻炼手指灵活性而且具有非凡耐性的人,十天半个月身为一名久经磨炼的游戏爱好者能坚持,再长些时间恐怕谁都不会说喜爱这种简单而重复的操作。

让我们再了解一下,现行外挂的不同工作原理。

1. 模拟动作式外挂。所谓动作式,就是指用API发命令给窗口或API控制鼠标、键盘等,使游戏里的人物进行流动或者攻击,最早以前的“石器”外挂就是这种方式。按键精灵就属于此类外挂。

2. 内存修改式外挂。这种外挂跟传统上的一些游戏修改器没有两样,做这种外挂在编程只需要对内存地址有一点认识并且掌握API就可以实现,“精灵”的外挂这是这种方式写成的,它的难点在于找到那些地址码,找地址一般地要借助于别人的工具,有的游戏还有双码校验,正正找起来会比较困难。

3. 封包修改式外挂。这种外挂的原理是先截取游戏的数据封包,客户端修改,再转发。这种外挂适用于大多数网络游戏,像WPE及一些网络游戏外挂都是用这种方式写成的。

其他的还有诸如加速式外挂、木马式外挂等。

在这几类外挂中,除了模拟动作式外挂,其他都是国家明令禁止的,原因很简单,这些外挂无一例外或多或少都破坏了游戏的平衡性,而游戏平衡性可以说是一个网络游戏能长期生存下去的前提条件,很难想象人们会喜欢在一个在游戏中随时可能被利用BT外挂而变得超级无敌者PK。

其实模拟动作式外挂,并不能称得上真正意义的外挂,只能是一种辅助游戏的工具,那些用过封包修改式之类外挂的人员,对此类外挂的简单功能嗤之以鼻,不屑一顾,但毕竟不是游戏里固有的,而是脱离游戏软件的外部存在,只好简单笼统地称之为外挂。

功能简单既是模拟动作式外挂的缺点,也是其优点所在。正是因为其只是简单的游戏者动作模拟操作,因而并不会破坏游戏的平衡性,可算是合法的“外挂”,虽然某些游戏开发商、运营商出于自身利益的原因也封杀这类外挂,但游戏爱好者对此类外挂却非常欢迎喜爱。由于不破坏游戏的平衡性,没有那些变态的如睡移、穿墙、锁血等等功能,在游戏的时候用此类模拟动作式外挂游戏时也感觉心里安稳些。

总之,概括起来一句话:在不破坏游戏平衡性性的前提下,尽可能的提供用户需要的功能。

思考三、为什么需要按键精灵?

显而易见,与现行成熟的大型编程软件,如VB、VC、DELPHI等这些著名的编程软件相比,按键精灵就如是这些软件里面的一个小小的控件,无论是从编译器的效率、调试侦错的手段、编辑器的强大友好、面向对象的可视化操作……等等,这些都是无法比拟的。但有句名言不是说了吗?“能抓到耗子的就是好猫”,只要能达到使用者的目的的就是最用的软件,这个跟软件的大小无关,工具就是工具,无论是铁锹还是一根铁条,老古话说:“寸有所长,尺有所短”。

那么为什么我不用VB、DELPHI这些强大的编程工具就可以理解了,虽然我可以用这些软件完成与按键精灵一样的功能,但按键精灵使用起来更简单、更专业、更方便,这就是使用按键精灵的原因所在。

简单地说,按键精灵存在的意义,就在于给游戏爱好者、脚本编写者(尤其是那些对编程并没有深入学习过的普通游戏爱好者),提供一个简单、便捷的游戏脚本编写平台。

思考四、关于按键脚本命令集的结构

我认为按键精灵的命令(API)集合可以大致分为如下四个部分:

1. 专门针对游戏的部分。这一部分包括键盘鼠标命令和一些VBS函数,如FindCenterColor, FindColor,FindColorEx,FindPic等,这部分命令集合是按键精灵作为一个辅助工具的特色所在,是按键精灵的核心和最重要的部分,如果除去这一部分,按键精灵存在的意义将大大消弱。因此,任何有可能提高这些命令集的完成效率,如更好的算法等等,哪怕是微小的改进,也是值得花精力的。

2. 从VBScript中引入的部分。如在按键精灵的帮助文件中提到的:

“按键精灵首创在键盘鼠标模拟类软件中引入高级语言的结合,无限扩展了按键精灵的语言功能。使用微软提供的VBS引擎,具有无可比拟的兼容性和稳定性。”
“VBS语句的特点
* 指令丰富:上百个标准函数可以随意供您使用
* 效率较低:比起按键精灵本身的语句,使用VBS语句的效率会有一定的降低
* 稳定性好:微软提供的VBS引擎是Windows操作平台的一部分,稳定性极佳 ”

3. 扩展插件部分。这一部分才真正可以说是“引入高级语言的结合,无限扩展了按键精灵的语言功能”,通过与C、Delphi等语言的结合,利用这些高级语言编写各种各样的插件,从而极大的的拓展了按键精灵的功能。

4. 其他部分。这部分主要包括脚本语法和一些杂类命令等。

在上述四部分中,我认为软件的开发者应该将注意力集中到第一部分API命令集的优化和拓展上,并不断地精益求精。

几点建议

①按键精灵的脚本编辑器,自5.80版开始增加关键字颜色表示,增加自动完成,增加语句提示等新功能,但这种新功能做的并不完善,只能提示有限的几种提示,而且有时用起来很不方便,建议开发者参考下Delhpi、VB等成熟编辑器的使用。

②进一步优化和改进一些原有核心函数的算法,如FindPic,FindColor等,可以参考按键游侠的某些做法(游侠的查找图片确实比较快)。

③按需求增加完善新的核心函数,如在游戏中通过脚本复制屏幕某块区域并保存为图片的函数等等。

④增加一些实用的辅助工具,如在查找图片时要将图片做成透明底图的东西,完全可以做成个专用的小工具来帮助做这件事。这个可以参考HyperSnap里面的几个功能,用起来真的很方便。

⑤改进脚本调试器的操作,很多时候,尤其是在编写、调用插件、VBS函数的时候,出错了但软件什么也不提示,根本无从知道究竟是哪里出错了,最起码给个变量的显示监控界面或者提示脚本的某行出错。

⑥可以考虑,将一些编写游戏脚本常用的模块,如渐开线找怪的算法,查血条的算法等等,将这些已经比较常用的东西作成一些代码片,类似If...Else...EndIf,在脚本编写时,可以直接复制插入到当前脚本中。也就是说,在脚本编辑器的左边栏PageControl里增加“常用脚本”一页,最好里面的内容是动态的,即可以自己添加,也可以网上更新。其内容应该是按照类别分类显示的。