大漠各个插件说明.docx
《大漠各个插件说明.docx》由会员分享,可在线阅读,更多相关《大漠各个插件说明.docx(25页珍藏版)》请在冰豆网上搜索。
![大漠各个插件说明.docx](https://file1.bdocx.com/fileroot1/2022-10/28/a3998967-4599-4d8e-b46f-754842a5b6e4/a3998967-4599-4d8e-b46f-754842a5b6e41.gif)
大漠各个插件说明
大漠各个插件说明
1.无返回值的不能带括号,或者说无括号不能带返回值,例如
dm.FindStr0,0,2000,2000,"长安","aaaaa-00000",1.0,intX,intY
dm.MoveTointX,intY
dm.LeftClick
dm.SetPath"c:
\xxxx"
dm.SetDict0,"test.txt"
dm.LoadPic"*.bmp"等等,这些都是不需要返回值的,那么不需要加括号,当然,你也可以加括号,但是就必须遵循规则2
2.有返回值的必须带括号,或者说,有括号必须有返回值,例如dm_ret=dm.FindStr(0,0,2000,2000,"长安","aaaaa-00000",1.0,intX,intY)dm_ret=dm.MoveTo(intX,intY)dm_ret=dm.LeftClick()dm_ret=dm.SetPath("c:
\xxxx")dm_ret=dm.SetDict(0,"test.txt")dm_ret=dm.LoadPic("*.bmp")
有些函数,是必须有返回值的,那么就必须带括号,比如Ocr函数等
ss=dm.Ocr(0,0,2000,2000,"aaaaaa-000000",1.0)
尽量少用。
以下是在按键下
4按键多线程调用插件目前来讲,按键的多线程还不够成熟使用多线程调用插件的一个示例.
//注册部分我就省略了
Dimhwnd
Setdm=createobject("dm.dmsoft")
TracePrintdm.Ver()
//主绑定(当然你也可以不要主绑定。
直接在线程里绑定)hwnd=dm.GetMousePointWindow()
dm_ret=dm.BindWindow(hwnd,"dx","windows","windows",0)
TracePrintdm_ret
Id1=BeginThread(测试线程)
Id2=BeginThread(测试线程)
Do
Delay2000
TracePrint"主线程"
Loop
//这里必须用ExitScript以免线程无法停止.
ExitScript
Sub测试线程()
Setdm=createobject("dm.dmsoft")//副绑定
dm_ret=dm.BindWindow(hwnd,"dx","windows","windows",0)
TracePrintdm_ret
Do
Delay2000
TracePrint"子线程"
Loop
EndSub
SubOnScriptExit()
TracePrint"OnScriptExit"
dm.UnBindWindow
EndSub
5本机文字识别正常为什么别的机器识别不正常这是一个很常见的问题,不同机器,由于系统的不同或者软件设置的差异,会导致文字颜色,字体等可能存在不同。
一般来说解决这个问题,以前的办法是这样,利用Capture函数,比如
dm_ret=dm.FindStr(0,0,2000,2000,"长安
","ffffff-000000",1.0,x,y)
ifx<0then
dm_ret=dm.Capture(0,0,2000,2000,"screen.bmp")
endif
这样当找不到长安时,就会截图保存为screen.bmp,然后作者可以分析这个文件,来对自己的字库或者代码进行调节优化.
但这个办法有个延后性的问题,因为FindStr和Capture是两个操作,分别调用了两次截屏,所以可能会有稍许不一致的情况存在.
为了完完全全的对FindStr时,产生的截图进行分析,我们需要用到
2.1131版本提供的两个函数。
CapturePre和EnableDisplayDebug.
那么代码如下
dm.EnableDisplayDebug1
dm_ret=dm.FindStr(0,0,2000,2000,"长安","ffffff-000000",1.0,x,y)
ifx<0then
dm_ret=dm.CapturePre("screen.bmp")endif
这样就把FindStr时的截图保存下来了,就完全恢复了现场.因为CapturePre这个函数是截取上一次的截图数据.
6插件释放到Plugin里的要求首先从理论上来说释放到任何目录都是没问题的
但是按键以及简单游或者小精灵的Plugin目录比较特殊原因在于按键会自动把Plugin目录下的所有dll强行注册到系统(相当于调用了Regsvr32*.dll)
而且按键还会自动为每个dll创建相对应的com对象,这样导致
Plugin下的dll会被暂时锁定,
此时,如果再进行对此dll的注册,都会失败.
所以如果你释放插件到Plugin目录,那么导致的问题就是如果要进行插件升级,很可能就会失败,导致脚本错误.
所以我强烈建议大家养成好习惯,不要把dll释放到Plugin,自己手动注册最安全可靠.这样既利人又利己.
从2.1118B版本之后,大漠插件将禁止释放到Plugin目录,以避免一系列升级产生的BUG!
同时,也禁止用Plugin方式来调用插件,那个方式也是非常不安全的.
请大家严格按照vbs的语法来使用插件.
7出现VBS错误的解决办法
出现这种问题,99%的原因是由于插件版本没有注册到系统导致,解决办法如下
1.删除Plugin目录的dm.dll和dm_jdyou.dll(简单游的话直接删除bin目录)
2.插件的释放路径不要释放到Plugin目录,改为c盘的某个目录,并且用RegDll来注册,如下
PutAttachment"c:
\test_game","*.*"
PutAttachment".\Plugin","RegDll.dll"
CallPlugin.RegDll.Reg("c:
\test_game\dm.dll")
3.重新启动脚本即可
4.如果这样还不行,尝试手动注册,手动在运行下,输入regsvr32
如果这样还提示出错,那就是系统问题,重装干净安全的系统最好不要用ghost系统,很多ghost系统都是修改过系统文件的,很危险!
8出现坐标越界的解决办法
出现这种错误,一般是你的代码给插件传递的参数有明显的错误,帮助调试脚本很有用.
比如FindStr函数
dm_ret=dm.FindStr(20,0,10,100,"abc","000000-000000",1.0,x,y)
这样显然x1(20)>=x2(10)这显然是错误的
再比如
dm_ret=dm.FindStr(-2000,0,-1000,100,"abc","000000-000000",1.0,x,y)
这样显然x2小于0这也是明显错误不可能有这样的情况出现等等类似的错误
如果不想显示这样的信息,可以调用插件的接口SetShowErrorMsg来屏蔽这些错误比如dm.SetShowErrorMsg0
9对边缘模糊文字的识别对于这个问题,问的人比较多
很多情况下,文字并不是我们想象的边缘锐利,而是有一定的渐变,
这时,再去用普通的文字识别,误判的几率就很高
而且就算是加入了模糊度判定,还是可能会误判
解决办法是,不要用文字识别,改用多点找色,或者是自己制作透明图,自己写算法来进行判别.
制作透明图,用我的工具就可以很方便快捷的制作出来,这样的准确率是最好的,效率也是最高的.
10后台绑定会对哪些接口有影响由于后台绑定操作和一系列接口有关系,那么有哪些接口会有影响呢?
图色部分文字识别部分,键鼠部分,以及答题接口的FapCapture会
有影响,,这些接口的具体操作是根据绑定的具体参数而定的
那么其它部分的接口完全没有影响,可独立操作.
11插件收费功能
目前插件大部分功能都是免费给大家使用,但下面这些功能是收费使用。
(简单游平台无此限制,大部分功能上按键上无限制)紫色文字表示的功能在按键上是不支持的,仅仅支持简单游平台和付费用户.按键平台要调用紫色文字标识的功能,必须配合Reg或者
RegEx函数.
1.BindWindow和BindWindowEx中的模式13567.(强力绑定模式,并且可过部分检测)
2.BindWindow和BindWindowEx中的dx.mouse.cursor,(后台鼠标特征.)
3.BindWindowEx中的dx.public.fake.window.min禾口
dx.public.disable.window.show(假最小化功能)
4.插件自我保护功能.(仅仅在简单游平台和付费用户开启.按键不支持)(收费插件会开启部分防检测功能)
5.AsmCall接口的多线程安全功能.(免费用户多线程会出现异常错误)
6.BindWindowEx中的dx.public.hide.dll.(插件隐藏功能)
7.EnumWindow和EnumWindowByProces的属性32(按窗口打开顺序
枚举窗口)
8.EnableKeypadPatch,EnableKeypadSync和EnableMouseSync(键鼠同步接口)
9.内存接口中的FindIntExFindFloatExFindDoubleExFindStringExFindDataEx(强力高速内存搜索接口,多线程)
10.DisableFontSmooth和CheckFontSmooth(系统文字平滑设置)
11.FaqSend和FaqPost中的request_type类型为3(双坐标)(支持同时传递2个坐标,对于多坐标验证很有用)
12.SetDisplayAcceler设置硬件加速级别.(设置系统的D3□硬件
加速级别,有些窗口需要关闭这个才可以后台)
13.FindWindowByProcess和FindWindowByProcessId(可根据进程名或者进程ID来枚举窗口)
14.RunApp加强模式运行程序.(有些窗口无法用普通模式运行,可以尝试这个。
强力模式基本上没有运行不了的)
15.Delay不会阻塞UI,不占用CPU的延时.(高级语言的延时函数,效果同按键的Delay.省CPU)
16.FindWindowSuper(可查找任意窗口的函数)
17.FindPicMemFindPicMemEFindPicMemEx(内存找图)
18.SetDictMem(内存设置字库)
19.GetNetTimeSafe(安全获取网络时间)
20.ForceUnBindWindow(强制解除绑定,有些非常时刻需要)
21.ReadIniPwd,WriteIniPwd(INI加密读写)
22.KeyPressStr(用连续的按键来模拟文字输入)
23.FaqCaptureFromFile