AHK入门指南

您所在的位置:网站首页 卡盟里的东西是真的吗 AHK入门指南

AHK入门指南

2024-07-10 18:18| 来源: 网络整理| 查看: 265

写在开头

        三月份闲来无事,发了几个有关AHK的视频,发现有些同学对这个很有兴趣。下面,我会在程序员的角度说一下这个语言。

什么是AHK

        AHK是一门语言,是一种编码语法。

        这么说其实大部分人还不是很明白,通俗的讲,它是代码。就像C、Java、Python一样。近几年Python应该算是出圈了,很多人应该会知道有这门语言。那么究竟这些语言的本质是什么呢?是工具。我们可以通过它们实现一个功能,可能是定时获取当天天气,可能是储存并管理一个酒店的所有信息,可能是做一些可以被规范的操作(我视频里的洗装备),等等。

        然而,语言之间也是有差异的,它们在各自领域各有擅长,所谓术业有专攻。AHK擅长的就是界面交互,所有关于电脑的输入操作(鼠标键盘操作),都有方法去实现。这是个可以解放双手的东西。

        比如你要刷门网课,啊...这例子不好,换一个。比如你接到上级任务,把一千多个文件里的“明主”改成“民主”,对吧,就算你会Ctrl+H替换,你也得打开一千多个文件吧,想想半天能做完吗?但是,用了AHK,你可以写个适当的脚本,以一个很快的速度(几秒)全部改完。这就是生产力啊朋友们!

        心动了吗?

如何使用AHK

        实不相瞒,我是通过游戏接触到AHK的。

        那天,我点击了成百上千次、机械、无趣的鼠标左键,每次点完还要看有没有我想要的东西。我累了,真的,手累眼累还有心累。我脸也太黑了吧!

        为何不写个脚本呢?我头脑里冒出这个想法的时候,我还没有意识到我应该用什么去实现,我只知道,一定会有一种语言可以做到的。

        然后我去搜,就找到了这个AHK:

www.autohotkey.com

        我寻思,以我这刚过四级的小英语水平,还是去找找中文文档吧,于是我找到了这个:

ahkcn.sourceforge.net/docs/AutoHotkey.htm

        emmmm...舒服了舒服了,能看懂了!然后我又顺便下了AutoAHK这个编译器,因为有语法提示,功能提示,整体看来还是挺不错的。

AutoAHK

        接下来就是对着文档一顿操作,没有任何难度了。我悟了,你们呢?

        哈哈哈,开玩笑,在你还没有熟悉这门语法之前,文档讲的其实并不易懂。我也会在遇到问题的时候去AHK的贴吧转转,相信我,会有点收获的。

我对AHK的看法

        在我看来AHK本身并不是个很人性化的语言。

        我是从C、JS、Java、Python这么一路学过来的,头一次觉得它的语法很别扭,特别是"="和":="的区别那里,我用着特别不习惯。而且,它的语法不是很规范,我觉得要么像C、Java那样用括号包裹代码块,要么像Python那样用缩进规范代码块。在AHK,这些都没有限制。可能你会认为这是好事,很自由。但我告诉你,这也会导致代码风格千差万别,读起代码来不知所云,你甚至会读不懂你之前写的代码。

        AHK的功能很强大,它可以读取电脑上显示的任何东西,还能读取输入设备(鼠标键盘)的任何操作,也有窗口界面可以绘制。这对于经常用电脑的人来说无疑提供了很多方便,写个脚本什么的简直不要太高效。

        但除此之外,我看不到它能和主流语言相比的优势。不能面对对象,调试起来麻烦,不能做网页端,局限在windows,可移植性太差等等。

        我之所以把AHK拿来和主流语言比较,是因为它其实还有点专业的意思在里面:是通过编码实现的脚本。它的竞争对手像易语言、脚本精灵,操作比它更简单,功能也很类似。如果能实现同样的效果,为啥不选更简单的呢?

        当然了,AHK的功能我觉得还是稍稍强一点的,而且它体积小啊。所以说这还是要多比较。我当初没用按键精灵,是因为我玩的那个游戏,它检测到按键精灵会封号,而AHK没事。喏,这也可以作为一种优势对吧。

        其实,如果可以的话,去学学Python是最好的。Python是正规军,处处充满了专业的气息。AHK能实现的功能,Python装上pyautogui这个插件也一样可以实现。而且,Python的功能还远不止于此,其实Python最多的用在数据爬取和数据分析上,做软件也很在行,可以说很强大了。

有关流放之路的AHK脚本

        这个写给那些评论和私信我流放之路脚本的同学,如果对此不感兴趣的同学可以先撤了。

        说实在的,我也是想了很久才考虑写这个模块。并不是我藏私,真正玩过这个游戏且懂点脚本的人都会知道,如果利用脚本牟利会是多么方便的事情。都知道现在国服工作室很猖獗,我不想让脚本成为他们的工具。不过,的确有很多同学是真的想学。所以,我取了个折中:我只讲方法,完整脚本不会给,希望理解。我希望脚本用在能够获取更多游戏体验的地方,比如说自动整理仓库、残血自动喝药等等。

        首先需要说明的是,这个游戏里的物品,鼠标悬停在物品上,可以Ctrl+C获取到该物品的所有信息。有了这个功能,关于物品的脚本就好做多了。

读取物品词缀

        上面就是读取物品词缀需要做的操作了,这一步是准备数据阶段。需要注意的是:你要知道如何拿到你需要的字段,去除干扰项,如下图,我上面写的方法,就是为了拿到词缀部分,并把词缀放到数组里,剩下的自己悟吧。

物品复制到粘贴板的信息

        然后便是分析词缀了,我们要知道分析词缀的什么?对,是数值。看图吧,我可以说这是精髓了:

分析词缀

        分几中词缀格式判断词缀是否为我想要的,这target就是满足条件的词缀数。

        当你能分析出你想要的词缀,就可以写做装备的逻辑了。把使用通货的鼠标操作封装成函数,注意从开始到结束,鼠标位置都必须都在你要做的物品上。鼠标移动点击什么的,看文档。

        我现在只放出洗改造的一套流程,这套流程用了几乎所有的通货,学习一下逻辑,其他的都不难。看图:

做某中型星团珠宝的逻辑

        最后,你需要用一个快捷键去触发这个方法,注意别和游戏里的快捷键冲突就行了。

        到这里,洗装备就讲完了。

        还有什么自动喝药的,真的太简单了,看药水持续时长,定时触发快捷键就完事了。不过你要考虑断药的问题。有点困难的是残血自动嗑药,这个需要用到图像识别,AHK也有方法,自行摸索,我用不到就没做。

        至于自动整理仓库,上面讲了如何读取物品数据,找特点区分,也很容易做。

写在后面

        我写这篇专栏,主要是为了还个愿,之前答应过各位要做AHK教学的。虽然不是视频,但我该教的都教了,还算没食言hhh。

        还有对AHK的看法,仅仅是我个人观点,欢迎讨论。

Newwbbie

        



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3