赞
踩
今晚我们玩脚本好吧,找到了一个社区,里面各种超级黑科技,于是我也想学学
反正会调用api就行
略,自己找一下吧,毕竟还是要支持一下官方的(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–
更完
写在后面:绑定窗口+找图函数基本就可以做大部分的简单脚本了,然而我学会后,热情也就散了,要做脚本什么的以后再说吧,有这时间我不如多学一点其他的东西,也许这就是点题了——从入门到摔门而出吧。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。