今晚我们玩脚本好吧,找到了一个社区,里面各种超级黑科技,于是我也想学学

反正会调用api就行

文章目录

下载e语言下载大漠插件制作大漠插件模块大漠注册大漠插件设置设置大漠全局路径设置字库

大漠释放易语言界面组件的简单使用通用对话框的运用拖放对象的运用写配置项的运用读配置项的运用编辑框只读运行

良好的习惯了解窗口如何获取窗口句柄注意

如何查找子窗口

绑定窗口截图找图移动鼠标并点击

找色找字

下载e语言

略,自己找一下吧,毕竟还是要支持一下官方的(doge

下载大漠插件

3.1233版本大漠插件的免费,有的用就不错了,还要啥自行车

把自己的分享一下吧(不知道哪个网站下的了),里面带有obj.txt(这也不知道是哪里拿的了),链接:https://pan.baidu.com/s/1Mgczk5PsyEiljY0Rao9mIQ 提取码:go9x

制作大漠插件模块

压缩包下载下来后运行注册大漠插件到系统.bat

打开易语言,新建易语言模块 新建好了易语言模块 插入类模块 把obj.txt中的内容复制到类模块中,原先的删掉 修改类名为大漠英文版,公开勾上,添加私有成员名obj,类型设置为对象 回车一下obj.创建 (“dm.dmsoft”, )行,没有报错就性

然后可以插入一个新类,把类名改成大漠中文版,操作和上面是一样的,只不过是自己把函数名改成中文的,但是做为一个受过中等教育的大学生还是英文用的习惯吧,这步我直接跳过了,没必要。

之后点程序,选择U.配置,输入程序名:大漠中英文模块,确定 再选编译,编译为指定类型->,选Windows易语言模块,编译成功后保存文件名为大漠中英文模块

大漠注册

先把dm.dll放到工作目录下。

新建windows窗口程序,记得一定要将文件保存到工作目录下,ctrl+s,不然会踩坑的。

接着添加模块,双击模块引用表 把大漠中英文模块.ec导入

导入后,ctrl+g,创建全局变量 全局变量名输入大漠,类型写大漠英文版 回到程序集,创建大漠,并且调试输出版本号

(注,后面这个全局变量名我改成dm了)

.版本 2

.支持库 spec

' 注册大漠模块到系统

运行 (“regsvr32 dm.dll”, 假, )

大漠.创建 ()

调试输出 (大漠.Ver ())

弹出框框就说明大漠插件注册好了,底部的console输出* “3.1233”

之后可以把运行 (“regsvr32 dm.dll”, 假, )注释掉

大漠插件设置

设置大漠全局路径

看接口文档就行,先打开大漠接口说明.chm,点索引 输入setp,点开SetPath,里面就有很详细的说明,以后要查函数也这样查就行

' 全局路径设置为当前文件所在的目录

dm.SetPath (取运行目录 ())

设置字库

搜索setDict,看一下说明

设置字库

' 设置字库

dm.SetDict (0, “ziku0.txt”)

在工作目录下新建一个ziku0.txt,运行测试一下,显示空的字库就行了

大漠释放

当程序关闭时,大漠应该释放掉,点属性,加入事件处理子程序,选上将被销毁 使用释放()函数将大漠释放掉

易语言界面组件的简单使用

随便做做

通用对话框的运用

设置-单击事件 测试一下,点选文件后编辑框可以显示路径就行。

拖放对象的运用

拉一个拖放对象进来 接收文件设为真 把得到文件添加进窗口程序集 将拖拽的文件路径显示到编辑框 注意:注册拖放对象后才能拖 —2021.1.9号更新—

写配置项的运用

保存配置按钮的单击事件

写配置项 (, , , )

英文名称:SetKeyText

将指定文本内容写入指定配置项中或者删除指定的配置项或节,如果指定配置文件不存在,将会自动创建。成功返回真,失败返回假。本命令为初级命令。

参数<1>的名称为“配置文件名”,类型为“文本型(text)”。指定配置文件的名称,通常以.ini作为文件名后缀。

参数<2>的名称为“节名称”,类型为“文本型(text)”。包含欲写入配置项所处节的名称。

参数<3>的名称为“配置项名称”,类型为“文本型(text)”,可以被省略。参数值指定欲写入配置项在其节中的名称。如果参数值被省略,则删除指定节及其下的所有配置项。

参数<4>的名称为“欲写入值”,类型为“文本型(text)”,可以被省略。参数值指定欲写入到指定配置项中的文本。如果参数值被省略,则删除所指定配置项。

运行测试一下,输入123,123,点保存配置按钮

读配置项的运用

读配置项 (, , , )

英文名称:GetKeyText

读取指定配置文件中指定项目的文本内容。本命令为初级命令。

参数<1>的名称为“配置文件名”,类型为“文本型(text)”。指定配置文件的名称,通常以.ini作为文件名后缀。

参数<2>的名称为“节名称”,类型为“文本型(text)”。包含欲读入配置项所处节的名称。

参数<3>的名称为“配置项名称”,类型为“文本型(text)”。参数值指定欲读入配置项在其节中的名称。

参数<4>的名称为“默认文本”,类型为“文本型(text)”,可以被省略。如果指定配置项不存在,将返回此默认文本。如果指定配置项不存在且本参数被省略,将返回空文本。

编辑框只读

输入方式:只读

运行

运行 (, 假, )

英文名称:run

本命令运行指定的可执行文件或者外部命令。如果成功,返回真,否则返回假。本命令为初级命令。

参数<1>的名称为“欲运行的命令行”,类型为“文本型(text)”。

参数<2>的名称为“是否等待程序运行完毕”,类型为“逻辑型(bool)”,初始值为“假”。

参数<3>的名称为“被运行程序窗口显示方式”,类型为“整数型(int)”,可以被省略。参数值可以为以下常量之一:1、#隐藏窗口; 2、#普通激活; 3、#最小化激活; 4、#最大化激活; 5、#普通不激活; 6、#最小化不激活。如果省略本参数,默认为“普通激活”方式。

只运行.exe文件,lnk快捷方式不会运行

良好的习惯

名称格式:组件名_组件标题

了解窗口

需要一个抓窗口句柄的软件,如精易语言编程助手

想要程序要后台运行,首要绑定窗口,即获取程序的窗口句柄。

但是句柄每次启动都是会改变的。

如何获取窗口句柄

打开接口说明,搜索findwindow,用它来查找符合类名或者标题名的顶层可见窗口 那么我们来测试一下,先创建一个参数接收findWindow的返回值

打印一下结果 461310就是获取到的句柄

注意

查找窗口句柄需要从最顶层开始查找

如何查找子窗口

findWindowEx 使用FindWindowEx查找子窗口

—2021.1.10号更新—

绑定窗口

BindWindow方法

long BindWindow(hwnd,display,mouse,keypad,mode) 插入一个子程序 改名为绑定窗口 写命令BindWindow前

我们需要一个大漠测试工具v43.0来测试使用哪个模式,先绑定工作dm.dll的目录,我的是D:\workcode\e

用这个工具调试该用什么模式

用这个准心拖拽到窗口中 在绑定参数可以选择模式 选好了点绑定,会弹框提示和右边有提示信息 然后测试图色,如果截图没有黑屏就差不多行了 点击Capture,去看这个图片 第一次不出意外就是黑屏的,多点两次试试,可能第一次没有绑定成功,看.bmp有图了就成功了。

测试鼠标模式 MoveTo和移动以后接一个左键点击,看是否能点击 用准心获取坐标,拖拽到你要移动到的点 点击moveTo试一下,执行成功即可,没问题就行

然后测试键盘 因为是4399来测试的,没有啥键盘能用,就跳过吧,要测试点Keypress按钮就行

调试结束,可以自动生成绑定代码

回到易语言写绑定窗口代码

截图

capture

抓全屏,参数就是0,0,2000,2000 回到工作目录看看,没问题就成功了

找图

FindPic,自己仔细看看参数定义,很好懂的。

有10个参数,打9个逗号

打开大漠综合工具 ctrl+1抓图 比如我要抓这个开始冒险的图片

框选后保存到工作路径下

然后写找图代码 输出结果,0就说明找到了第一张图

移动鼠标并点击

很简单,直接写代码 测试一下,基本没问题,如果找图返回-1,请检查窗口句柄是否正确 —2021.1.11号更新—

找色

找色和找图参数都差不多的,图像换成颜色, 使用大漠综合工具,先抓图 ctrl+1,比如我想找易语言图标里的红色

不要绑定句柄,就可以截当前屏幕了,下面红框里的是findcolor的前四个参数,在这个范围找色 先填入前四个参数 然后color颜色获取方式是点一下色块,去取色

取出来的红色ff1515

参数是色彩描述,复制一下 写完找色代码,打印输出 console结果显示,1说明就是找到了,但是会发现intX和intY有点偏差,这是因为有重复的颜色,查找方向是 0: 从左到右,从上到下 ,只找第一个发现的。 接着可以把鼠标移动MoveTo过去了

找字

找字的话需要制作字库,我们之前设置了一个空的字库 如何做字库呢,打开大漠综合工具,先打开我们自己空的字库文件 这是我当前的桌面,比如我想抓‘入门’这两个,ctrl+1截图要抓的字 点击色块取色,偏色可以设成050505、101010、202020之类的

可以多点几个点,取完后把勾打上 二值化区域比较清晰就行,如果分辨不好的话,可以多点几个点,偏色调大,调到505050 然后点提取点阵(单个),也可以取单字,点(多个)就行,不过单字用不上,要取单字的话建议单独截图,它自动识别效果不是很好

填入定义文字 敲回车键添加到字库 字库就做好了 回到接口说明,查findStr,和找图找色基本一致 先设置找字区域 str是字库中的刚刚定义文字,输入入门

颜色是色彩描述 写完代码,和之前的一样 执行结果如下,0就说明找到了第一个字

–2021.1.12– 更完

写在后面:绑定窗口+找图函数基本就可以做大部分的简单脚本了,然而我学会后,热情也就散了,要做脚本什么的以后再说吧,有这时间我不如多学一点其他的东西,也许这就是点题了——从入门到摔门而出吧。