首页 大漠各个插件说明[整理版]

大漠各个插件说明[整理版]

举报
开通vip

大漠各个插件说明[整理版]大漠各个插件说明[整理版] 大漠各个插件说明 1. 无返回值的不能带括号 ,或者说无括号不能带返回值,例如 dm.FindStr 0,0,2000,2000,"长安","aaaaa-00000",1.0,intX,intY dm.MoveTo intX,intY dm.LeftClick dm.SetPath "c:\xxxx" dm.SetDict 0,"test.txt" dm.LoadPic "*.bmp" 等等,这些都是不需要返回值的,那么不需要加括号,当然,你也可以加括号,但是就必须遵循规则2...

大漠各个插件说明[整理版]
大漠各个插件说明[整理版] 大漠各个插件说明 1. 无返回值的不能带括号 ,或者说无括号不能带返回值,例如 dm.FindStr 0,0,2000,2000,"长安","aaaaa-00000",1.0,intX,intY dm.MoveTo intX,intY dm.LeftClick dm.SetPath "c:\xxxx" dm.SetDict 0,"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) m_ret = dm.LeftClick()d 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按键多线程调用插件 目前来讲,按键的多线程还不够成熟。 尽量少用。以下是在按键下使用多线程调用插件的一个示例. // 注册部分我就省略了 Dim hwnd Set dm = createobject("dm.dmsoft") TracePrint dm.Ver() // 主绑定(当然你也可以不要主绑定。直接在线程里绑定) hwnd = dm.GetMousePointWindow()dm_ret = dm.BindWindow(hwnd, "dx", "windows", "windows", 0) TracePrint dm_ret Id1 = BeginThread(测试线程) Id2 = BeginThread(测试线程) Do Delay 2000 TracePrint "主线程" Loop // 这里必须用ExitScript 以免线程无法停止. ExitScript Sub 测试线程() Set dm = createobject("dm.dmsoft") // 副绑定 dm_ret = dm.BindWindow(hwnd, "dx", "windows", "windows", 0) TracePrint dm_ret Do Delay 2000 TracePrint "子线程" Loop End Sub Sub OnScriptExit() TracePrint "OnScriptExit" dm.UnBindWindow End Sub 5本机文字识别正常 为什么别的机器识别不正常 这是一个很常见的问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 ,不同机器,由于系统的不同或者软件设置的差异,会导致文字颜色,字体等可能存在不同。 一般来说解决这个问题,以前的办法是这样,利用Capture函数,比如 dm_ret = dm.FindStr(0,0,2000,2000,"长安 ","ffffff-000000",1.0,x,y) if x < 0 then dm_ret = dm.Capture(0,0,2000,2000,"screen.bmp") end if 这样当找不到长安时,就会截图保存为screen.bmp,然后作者可以分析这个文件,来对自己的字库或者代码进行调节优化. 但这个办法有个延后性的问题,因为FindStr和Capture是两个操作,分别调用了两次截屏,所以可能会有稍许不一致的情况存在. 为了完完全全的对FindStr时,产生的截图进行分析,我们需要用到2.1131版本提供的两个函数。 CapturePre和EnableDisplayDebug. 那么代码如下 dm.EnableDisplayDebug 1 dm_ret = dm.FindStr(0,0,2000,2000,"长安 ","ffffff-000000",1.0,x,y) if x < 0 then dm_ret = dm.CapturePre("screen.bmp") end if 这样就把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" Call Plugin.RegDll.Reg("c:\test_game\dm.dll") 3. 重新启动脚本即可 4. 如果这样还不行,尝试手动注册,手动在运行下,输入regsvr32 c:\test_game\dm.dll, 如果这样还提示出错,那就是系统问题,重装干净安全的系统. 最好不要用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.SetShowErrorMsg 0 9对边缘模糊文字的识别 对于这个问题,问的人比较多 很多情况下,文字并不是我们想象的边缘锐利,而是有一定的渐变,这时,再去用普通的文字识别,误判的几率就很高 而且就算是加入了模糊度判定,还是可能会误判. 解决办法是,不要用文字识别,改用多点找色,或者是自己制作透明图,自己写算法来进行判别. 制作透明图,用我的工具就可以很方便快捷的制作出来,这样的准确率是最好的,效率也是最高的. 10后台绑定会对哪些接口有影响 由于后台绑定操作和一系列接口有关系,那么有哪些接口会有影响呢, 图色部分 文字识别部分,键鼠部分,以及答题接口的FapCapture会有影响,,这些接口的具体操作是根据绑定的具体参数而定的。 那么其它部分的接口完全没有影响,可独立操作. 11插件收费功能 目前插件大部分功能都是免费给大家使用,但下面这些功能是收费使用。(简单游平台无此限制,大部分功能上按键上无限制) 紫色文字表示的功能在按键上是不支持的,仅仅支持简单游平台和付费用户. 按键平台要调用紫色文字标识的功能,必须配合Reg或者RegEx函数. 1.BindWindow和BindWindowEx 中的模式1 3 5 6 7. (强力绑定模 式,并且可过部分检测) 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和EnumWindowByProcess的属性32 (按窗口打开顺序枚举窗口) 8.EnableKeypadPatch , EnableKeypadSync和EnableMouseSync (键鼠同步接口) 9.内存接口中的FindIntEx FindFloatEx FindDoubleEx FindStringEx FindDataEx (强力高速内存搜索接口,多线程) 10. DisableFontSmooth和CheckFontSmooth (系统文字平滑设置) 11. FaqSend和FaqPost中的request_type类型为3(双坐标) (支 持同时传递2个坐标,对于多坐标验证很有用) 12. SetDisplayAcceler 设置硬件加速级别. (设置系统的D3D硬件加速级别,有些窗口需要关闭这个才可以后台) 13. FindWindowByProcess和FindWindowByProcessId (可根据进程名或者进程ID来枚举窗口) 14. RunApp 加强模式运行程序. (有些窗口无法用普通模式运行,可以尝试这个。强力模式基本上没有运行不了的) 15. Delay 不会阻塞UI,不占用CPU的延时. (高级语言的延时函数,效果同按键的Delay.省CPU) 16. FindWindowSuper (可查找任意窗口的函数) 17. FindPicMem FindPicMemE FindPicMemEx (内存找图) 18. SetDictMem (内存设置字库) 19. GetNetTimeSafe (安全获取网络时间) 20. ForceUnBindWindow (强制解除绑定,有些非常时刻需要) 21. ReadIniPwd,WriteIniPwd (INI加密读写) 22. KeyPressStr (用连续的按键来模拟文字输入) 23. FaqCaptureFromFile (答题时支持从文件中获取句柄信息) 24. DmGuard (仅仅在简单游平台和付费用户开启.按键不支持)。 (部分窗口需要) 25. EnableRealMouse和EnableRealKeypad (模拟真实的鼠标和按键,可过部分检测) 26. BindWindowEx中的dx.public.active.api2 (部分窗口需要这个才可以后台) 27. BindWindowEx中的dx.public.input.ime以及SendStringIme (强力输入接口,类似SendString, 但这个接口几乎可以支持任意窗口输入) 28. FoobarDrawLine (Foobar的画线接口) 29. BindWindowEx中的图色dx.graphic.3d.8 (D3D8的后台,部分窗口必须用这个才可以后台图色) 30. BindWindowEx中的dx.public.graphic.protect (仅仅在简单游平台和付费用户开启.按键不支持). (图色防检测,很有用) 31. BindWindowEx中的dx.keypad.raw.input和 dx.mouse.raw.input (部分窗口必须指定这个才可以后台) 32. BindWindowEx中的图色dx.graphic.2d.2 (dx.graphic.2d的增强模式。部分窗口必须用这个才可以后台) 33. GetDmCount (获取当前进程DM对象数量) 34. SetMemoryHwndAsProcessId. (所有内存接口支持以进程ID来操作) 35. BindWindow和BindWindowEx的模式101和模式103. (仅仅在简单游平台和付费用户开启.按键不支持). (超级绑定模式,更加安全,避免被恶意检测.) 36. BindWindowEx中的属性dx.public.anti.api. (仅仅在简单游平台和付费用户开启.按键不支持). (突破部分窗口后台保护.) 37. BindWindowEx中的属性dx.mouse.input.lock.api2. (用于解决部分窗口在后台操作时,前台鼠标会移动的问题.) 38. FindShape FindShapeE FindShapeEx (同按键的找形状) 39. FindStrS FindStrExS FindStrFastS FindFastStrExS FindPicS FindPicExS 40. BindWindowEx中的属性dx.public.memory. (突破部分窗口内存读写保护. 绑定成功即可读写.) 41. EnableFakeActive. (控制可以开启或者关闭后台假激活.此函数很少人用到.注意看函数说明.) 42. GetScreenDataBmp. (类似GetScreenData.不过此函数直接返回封装好的bmp格式的数据. 可直接用于二次开发.) 43. EnableMouseLockPosition. (解决部分窗口后台点击会影响到前台.) 44. BindWindowEx中的属性dx.mouse.input.lock.api3. (用于解决部分窗口在后台操作时,前台鼠标会移动的问题.) 45. BindWindowEx中的dx.public.km.protect (仅仅在简单游平台和付费用户开启.按键不支持). (dx键鼠防检测,很有用) 46. DecodeFile和EncodeFile. (用于文件加解密.) 47. BindWindowEx中的dx.public.prevent.block. (某些窗口使用绑定模式1 3 5 7 101 103可能会导致窗口卡死. 这个属性可以避免卡死.) 11如何保证注册码的安全 插件的注册码可以在Reg和RegEx中注册。 很多人直接把注册码以明文方式写在参数里,这实际上是很不安全的做法. 比较安全点的做法是把注册码加密。并且在传递给Reg或者RegEx前解密. 并且把Reg和RegEx这段代码用强壳来保护. 比如vmp等. 另外就是推荐使用RegEx来注册插件。可以在后台详细 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 看到软件附加信息. 这样可以手动排查被破解的可能性. 12后台识别鼠标特征码 首先 后台鼠标特征码仅适用于按键和简单游平台 1. 先用大漠综合工具来获取前台鼠标特征码,如果前台无法获取到特征码,那么就无法获取后台鼠标特征码. 2. 然后用以下代码,来测试是否有鼠标特征码 set dm = createobject("dm.dmsoft") TracePrint dm.Ver() hwnd = dm.GetMousePointWindow() dm_ret = dm.BindWindow(hwnd,"dx2","dx2","dx",0) TracePrint dm_ret dm.MoveTo 0,0 Delay 100 TracePrint dm.GetCursorShape() // 下面这句是输出当前鼠标热点位置(同样支持后台) TracePrint dm.GetCursorSpot() dm_ret = dm.UnBindWindow() 如果以上代码可以正常输出鼠标特征,那就可以确定支持后台鼠标特征. 要注意的是,要想正确获取后台鼠标特征,必须在dm.MoveTo或者MoveR命令之后,加入一定的延时,以等待后台获取到鼠标特征. 一点小经验分享,有些窗口在使用一次MoveTo 可能获取不到特征码需要多移动几次 比如 For 3 dm.MoveTo 30,40 Next Delay 100 TracePrint dm.GetCursorShape() 13配置沙盘后台绑定 沙盘后台绑定 只适用于版本2.1109之后的版本 具体 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 打开沙盘,配置-》编辑配置文件 在[GlobalSettings]这个类别下加入以下内容 OpenIpcPath=*check_hook_exist* OpenIpcPath=*dx* OpenIpcPath=*share* OpenIpcPath=*Protected* 保存即可. 64位系统下必须安装64位沙盘,并且在沙盘设置->限制->降低管理 员和超级用户组的权限中,去掉前面的勾. 每个沙盘都要如此设置. 14使用后台识别 // 下面是一个GDI后台识别的例子(只列举了OCR,其余函数类似) hwnd = dm.GetForegroundWindow() dm_ret = dm.GetClientSize(hwnd,screen_w,screen_h) dm_ret = dm.SetDict(0,"C:\Documents and Settings\Administrator\桌面\1.txt") dm_ret = dm.BindWindow(hwnd,"gdi","normal","normal",0) s = dm.Ocr(0,0, screen_w, screen_h,"FEFB01-000000",1.0) MessageBox s 15使用绝对路径设置字库 比如我想把我的字库放到c:\test目录,那么代码如下: PutAttachment "c:\test","*.txt" dm_ret = dm.SetPath("c:\test") dm_ret = dm.SetDict(0,"dm_soft.txt") 16使用相对路径设置字库 比如我要把我的字库放在Res目录下,那么代码如下: base_path = dm.GetBasePath() dm_ret = dm.SetPath(base_path) dm_ret = dm.SetDict(0,"dm_soft.txt") 注意,要保证你的dm.dll是在Res目录,否则上面这面这段代码将把路径设置在你系统中dm.dll所在的路径 17手动注册插件到系统 比如dm.dll放在c:\test目录 那么开始->运行->cmd 在命令提示符下,输入cd c:\test 再输入 regsvr32 dm.dll 即可,这样会提示插件已经注册到系统中. 需要注意的是,可能有别的作者把dm.dll释放到系统目录。这样优先注册的是系统目录的插件. 解决办法是加上绝对路径。比如 regsvr32 c:\test\dm.dll 18单脚本能操作多个窗口 经常有人问我这个问题,现在特别把这个方法说一下。 比如有3个窗口,需要在一个脚本内分别控制,以达到多开的目的. 如果用我的插件如何实现呢, 其实很简单 比如有3个窗口同时操作. 那么代码如下 // 三个句柄(这里随便写的值,自己更换) Dim hwnd_all(3) hwnd_all(0) = 11111 hwnd_all(1) = 22222 hwnd_all(2) = 33333 // 声明3个对象(有几个窗口声明几个) Dim dm_all(3) // 分别创建对象 Set dm_all(0) = createobject("dm.dmsoft") Set dm_all(1) = createobject("dm.dmsoft") Set dm_all(2) = createobject("dm.dmsoft") // 声明公共对象,用于切换 Set dm = nothing hwnd = 0 // 调试用,打印下版本,好习惯 TracePrint dm_all(0).Ver() // 分别绑定窗口 For i = 0 To 2 Call 切换对象(i) dm_ret = dm.BindWindow(hwnd, "dx", "dx", "dx", 0) // 检测返回值 If dm_ret = 0 Then MessageBox "绑定失败" EndScript End If Next // 分别设置路径字库等 For i = 0 To 2 Call 切换对象(i) dm.SetPath "c:\test" dm.SetDict 0,"test.txt" Next // 脚本主循环 Do For i = 0 To 2 Call 切换对象(i) Call 打怪() Next Loop Sub 切换对象(index) Set dm = dm_all(index) hwnd = hwnd_all(index) // 如果还需要切换窗口也可以在这里操作 End Sub Sub 打怪() dm_ret = dm.FindStr(0, 0, 200, 200, "怪物名字", "ffffff-000000", 1.0, x, y) If x > 0 Then // 开始打怪 // 以下省略,和单开一样的写法 End If End Sub Sub OnScriptExit() // 分别解绑窗口 For i = 0 To 2 Call 切换对象(i) dm_ret = dm.UnBindWindow() Next End Sub 19如何多线程下使用 多线程下使用插件是一个很复杂的问题. 一般来说使用多线程的目的,有2种目的。 情况1 用多个线程控制多个窗口的脚本运行(最常见的情况,通常用于多开). 情况2 用多个线程控制同一个窗口的脚本运行(通常用于监控信息,比如验证信息,或其他一些突发性的情况). 下面就对上面列出的各种情况,讲解如何在这些情况下,使用大漠插件 一 按键的多线程 (示例代码可以参考这里) 情况1 1. 这种情况是最常见的情况,用大漠插件不用特别注意什么,每个窗口对应绑定一个大漠对象即可. 2. 这种情况下用多线程,其实和按键的重复多开一样的效果。 情况2 1. 这种情况就比较特殊了。要支持这种情况,必须使用插件(2.1117之后的版本). 2. 每个线程中,还是创建一个大漠对象,并绑定同一个窗口. 另外,特别要注意,绑定的同个窗口的绑定模式必须完全一样。 第一个绑定的大漠对象称做主绑定, 后面的都叫做副绑定,副绑定不用解绑也可以,但是一旦主绑定接绑,那么所有的绑定都会失效. 3. 这种模式下,还有个问题要注意,因为毕竟是多线程,键鼠的操作都是异步的,那么很可能出现键鼠 在多个线程中冲突的可能,这个问题没法解决,多线程势必会有这样的问题。只能建议少在子线程中 做键鼠的操作. 4. 另外要注意的是,子线程的绑定操作一定要在主线程之后,也就是说BeginThread的调用一定要在主 线程的BindWindow或者BindWindowEx之后进行. 二 其他高级语言的多线程 (高级语言模版大漠插件网站有下载) 首先,要注意的是,大漠插件是仅支持com的STA线程模型,高级语言中使用大漠插件,必须使用STA模型。 这样效率最高. MTA也可以,但是不同线程调用同个对象接口的同步必须自己完成.插件内部没有考虑这点. 情况1 1. 这种情况是最常见的情况,用大漠插件不用特别注意什么,每个窗口对应绑定一个大漠对象即可. 情况2 1. 这种情况就比较特殊了。要支持这种情况,必须使用插件(2.1117之后的版本). 2. 每个线程中,还是创建一个大漠对象,并绑定同一个窗口. 另外,特别要注意,绑定的同个窗口的绑定模式必须完全一样。 第一个绑定的大漠对象称做主绑定, 后面的都叫做副绑定,副绑定不用解绑也可以,但是一旦主绑定接绑,那么所有的绑定都会失效.. 3. 这种模式下,还有个问题要注意,因为毕竟是多线程,键鼠的操作都是异步的,那么很可能出现键鼠 在多个线程中冲突的可能,这个问题没法解决,多线程势必会有这样的问题。只能建议少在子线程中 做键鼠的操作. 4. 另外,子线程在绑定时,一定要等到主线程绑定结束之后,再执行绑定, 否则会引发不可预知的异常. 比如vc如何设置当前线程模型为STA,只要在线程开始调用CoInitialize(NULL)一次即可. 其他语言可能略有不同. 下面是一个按键8,使用大漠多线程的一个例子,必须使用大漠 插件v2.1129之后的版本 Set dm = createobject("dm.dmsoft") TracePrint dm.Ver() DimEnv hwnd hwnd = dm.GetMousePointWindow() // 主绑定一定要先绑定,后启动线程 dm_ret = dm.BindWindow(hwnd,"dx","dx","dx",0) TracePrint dm_ret // 开启3个线程 BeginThread 线程函数() BeginThread 线程函数() BeginThread 线程函数() Do // 这里做主线程的事情 Delay 1000 Loop Sub OnScriptExit() // 这句只会在主线程结束时被调用到 dm_ret = dm.UnBindWindow() End Sub Sub 线程函数() Set dm = createobject("dm.dmsoft") dm_ret = dm.BindWindow(hwnd,"dx","dx","dx",0) TracePrint "线程绑定结果:"&dm_ret Do // 这里做线程里需要做的事情 Delay 1000 Loop End Sub 20如何知道我的后台模式 测试窗口的后台模式非常简单 从颜色 鼠标 键盘三个 依次进行测试即可. 比如颜色,我们可以如下测试,其中的gdi模式你可以换成别的颜色模式,看哪种模式可以正常的后台截图,那么这个模式就是你的后台模式 截的到图我是放在了c:根目录(根据dm.SetPath指定的目录) set dm = createobject("dm.dmsoft") dm.SetPath "c:" hwnd = dm.GetMousePointWindow() dm_ret = dm.BindWindow(hwnd,"gdi","normal","normal",0) dm_ret = dm.Capture(0,0,2000,2000,"screen.bmp") dm_ret = dm.UnBindWindow() EndScript 比如鼠标,其中的windows你可以换成其它模式,测试鼠标要注意,坐标点(100,100)要换成窗口里有意义的点,比如某个按钮等. set dm = createobject("dm.dmsoft") hwnd = dm.GetMousePointWindow() dm_ret = dm.BindWindow(hwnd,"normal","windows","normal",0) dm.MoveTo 100,100 Delay 100 dm.LeftClick Delay 100 dm_ret = dm.UnBindWindow() EndScript 比如键盘,其中的windows你可以换成其它模式.注意下面的按下的虚拟键盘码68要根据窗口换成有意义的按键. set dm = createobject("dm.dmsoft") hwnd = dm.GetMousePointWindow() dm_ret = dm.BindWindow(hwnd,"normal","normal","windows",0) dm.KeyPress 68 Delay 100 dm_ret = dm.UnBindWindow() EndScript 21为什么不建议用plugin方式调用插件 原因还在于按键对于Plugin的实现方式。 由于我的插件的 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 是一个dm对象对应一个窗口这样的模式来设计的。 但是如果用了Plugin方式,实际上按键内部只有一个对象,无论你开几个脚本,开几个线程都是如此。 那么在多开时,就会出现问题。 所以,如果没有特别需求,还是用 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 的vbs方式来调用. 从2.1118B版本之后,大漠插件将禁止释放到Plugin目录,以避免一系列升级产生的BUG~ 同时,也禁止用Plugin方式来调用插件,那个方式也是非常不安全的. 请大家严格按照vbs的语法来使用插件. 22为什么不能和别的后台插件混用 当绑定为DX键盘或者DX鼠标时,必须用大漠插件带的键盘和鼠标命令,不可以用别的插件来替代, 比如按键自带的后台插件或者自己用消息模拟等. 这样做的目的是为了避免一些兼容性的问题! 23为什么插件无法升级 两个可能 1. 插件被释放到了Plugin目录 2. 插件被释放到了系统目录,比如c:\windows或者 c:\windows\system32 针对可能2, 如果确实要释放到系统目录,那你必须把插件改名。比如xx.dll. 并且注册插件必须指定全路径。 否则直接调用我的那个"自动注册插件到系统.bat"是不能成功替换的. 注册时可以这样写 call regdll.reg("c:\windows\system32\xx.dll") regsvr32 c:\windows\system32\xx.dll /s 解决办法是删除系统目录下的插件. 如果提示无法删除,就重启系统再删除。 24为什么会有错误提示 因为你的程序或者你使用的第三方插件造成了系统资源泄漏. 从而导致我的插件内部出错. 解决办法,仔细检查你的程序,修复可能导致资源泄漏的语句,并去除第三方插件再尝试. 25为什么机器码是空的 调用进程没有管理员权限,一般出在vista win7 2008系统. 解决办法,让调用进程以管理员方式运行. 或者关闭系统uac 26为什么模糊识别的速度很慢 如果要使用模糊识别,最好不要使用系统生成的那种很大的字库,否则速度会很慢. 可以自己建立字库,字库数量在1000以下,速度可以控制在1s左右. 当然如果没有必要模糊识别,最好把模糊度设置为1.0 ,这样的速度是最快的。 如果非要使用系统字库,可以考虑采用多字库. 注意,本插件文字识别的速度是建立在模糊度为1.0的基础上 模糊度小于1都会 极大的降低识别效率。请谨慎使用. 因为文字识别要求精准,一般没人用模糊识别, 比如"王"和"玉" 就差一个点,使用模糊就会导致识别失误。 所以大家还是尽量用 1.0的精准识别。 27为什么一绑定窗口就崩溃 使用图色模式dx.graphic.3d时,和多玩的YY语音有冲突. 不可在开着YY语音的情况下开启窗口. 否则会出现绑定失败并出现窗口崩溃的问题. 某些窗口的设置里可以直接关闭YY语音。(YY画中画). 28为什么有时候按键和鼠标会点击无效 这个问题很常见,一般是因为窗口内部对于鼠标和键盘的响应时间有 所要求导致。 一般来说,后台的键盘鼠标的按下和弹起的延时要比前台小很多,目的是为了加速执行效率。 解决这问题也很简单,加大按下和弹起的中间延时就可以解决。 如键盘 SetKeypadDelay 鼠标 SetMouseDelay 2个函数的说明. 具体可以参考这 29 标准的插件注册和绑定的例子 这里只以按键8作为例子,其它语言都类似。 // 首先打包dm.dll和RegDll.dll到附件,当然如果你还有其它资源(字库,图片等)也可以一并打包 // 这个need_ver作为本脚本需要使用的插件版本. 如果要换插件时,记得更改这个值. need_ver = "3.1210B" // 释放附件>>>>>>>>>>>>>>>>>>> // 这里选择c盘的test?_game作为插件的基本目录 也就是SetPath对应的目录。所以所有资源都释放在此目录. PutAttachment "c:\test_game","*.*" // 这里要用到RegDll来注册插件,所以必须释放到Plugin. 但是切记不能把dm.dll释放到Plugin.那会导致插件失效. PutAttachment ".\Plugin" ,"RegDll.dll" // 插件注册开始>>>>>>>>>>>>>>>>>>> // 下面开始注册插件,先尝试用RegDll来注册.这里必须使用绝对路径。以免有别人把dm.dll释放在系统目录.造成版本错误. Call Plugin.RegDll.Reg("c:\test_game\dm.dll") // 这里判断是否注册成功 set dm = createobject("dm.dmsoft") ver = dm.Ver() if ver <> need_ver then // 先释放先前创建的dm set dm = nothing // 再尝试用regsvr32 来注册. 这里必须使用绝对路径。以免有别人把dm.dll释放在系统目录.造成版本错误. set ws=createobject("Wscript.Shell") ws.run "regsvr32 c:\test_game\dm.dll /s" set ws=nothing Delay 1500 // 再判断插件是否注册成功 set dm = createobject("dm.dmsoft") ver = dm.Ver() if ver <> need_ver then // 这时,已经确认插件注册失败了。 弹出一些调试信息,以供分析. messagebox "插件版本错误,当前使用的版本是:"&ver&",插件所在目录是:"&dm.GetBasePath() messagebox "请关闭程序,重新打开本程序再尝试" endscript end if end if // 插件注册结束<<<<<<<<<<<<<<< // 收费注册开始,简单游作者不需要这一段(加了也没关系,不会扣 费),非简单游平台付费作者必须添加>>>>>>>>>>>>>>> // 当然,如果是在按键精灵上使用,这段代码是可以注释掉。大部分功能可以直接在按键平台使用。无须注册. // ok,这里已经确认插件注册成功,并且创建了对象,下面开始注册收费服务 dm_ret = dm.RegEx("abcdefg","0001") // abcdefg是您的注册码. 在大漠插件网站后台可以直接获取. if dm_ret <> 1 then messagebox "注册失败,返回值是:"&dm_ret endscript end if // 收费注册结束<<<<<<<<<<<<<<<< //这里设置插件基本目录 dm.SetPath "c:\test_game" // 获取句柄 hwnd = dm.GetMousePointWindow() // 绑定 dm_ret = dm.BindWindow(hwnd,"dx","dx","dx",0) // 检测绑定返回值 if dm_ret = 0 then last_error = dm.GetLastError() // 如果是WIN7 VISTA WIN2008系统,检测当前系统是否有开启UAC if dm.GetOsType() = 3 then // 有开启UAC的话,尝试关闭 if dm.CheckUAC() = 1 then if dm.SetUAC(0) = 1 then // 关闭UAC之后,必须重启系统才可以生效 messagebox "已经关闭系统UAC设置,必须重启系统才可以生效。点击确定重启系统" dm.ExitOs 2 Delay 2000 endscript end if end if end if // 具体错误码的含义,可以参考函数GetLastError的说明. messagebox "绑定失败,错误码是:"&last_error messagebox "如果确定关闭了UAC,很可能是系统的防火墙拦截插件,请暂时关闭360等安全防火墙再尝试" endscript end if // 下面就是脚本部分了 省略 // 下面这是脚本结束时执行的部分 Sub OnScriptExit() dm.UnBindWindow End Sub // 结束 另外特别要注意,不要把dm.dll释放到Plugin目录,那样会导致插 件在 更新版本时出现注册失败的情况。特别是在简单游平台.建议释放到C盘的 某个目录比如Test目录等. 另外,别的高级语言如何调用dm.dll,请百度XXXX语言如何调用Active X 对象. 目前经过测试的语言可以正常调用的有vc6 vb6 delphi 易,别的语言想必也不会有问题. 从2.1118B版本之后,大漠插件将禁止释放到Plugin目录,以避免一系列升级产生的BUG~ 同时,也禁止用Plugin方式来调用插件,那个方式也是非常不安全的. 请大家严格按照vbs的语法来使用插件. 如果是多线程使用大漠插件,必须每个线程都要创建一个dm对象. 注册过程脚本开始时,执行一次就行了,没必要每个线程都执行. foolbar工具栏 CreateFoobarCustom 函数简介: 根据指定的位图创建一个自定义形状的窗口 函数原型: long CreateFoobarCustom(hwnd,x,y,pic_name,trans_color,sim) 参数定义: hwnd 整形数: 指定的窗口句柄,如果此值为0,那么就在桌面创建此窗口 : 左上角X坐标(相对于hwnd客户区坐标) x 整形数 y 整形数: 左上角Y坐标(相对于hwnd客户区坐标) pic_name 字符串: 位图名字 trans_color 字符串: 透明色(RRGGBB) sim 双精度浮点数: 透明色的相似值 0.1-1.0 返回值: 整形数 : 创建成功的窗口句柄 示例: foobar = dm.CreateFoobarCustom(hwnd,10,10,"菜 单.bmp","FF00FF",1.0) CreateFoobarEllipse 函数简介: 创建一个椭圆窗口 函数原型: long CreateFoobarEllipse(hwnd,x,y,w,h) 参数定义: hwnd整形数: 指定的窗口句柄,如果此值为0,那么就在桌面创建此窗口 x整形数: 左上角X坐标(相对于hwnd客户区坐标) y整形数: 左上角Y坐标(相对于hwnd客户区坐标) w整形数: 矩形区域的宽度 h整形数: 矩形区域的高度 返回值: 整形数 : 创建成功的窗口句柄 示例: foobar = dm.CreateFoobarEllipse(hwnd,10,10,200,200) CreateFoobarRect 函数简介: 创建一个矩形窗口 函数原型: long CreateFoobarRect(hwnd,x,y,w,h) 参数定义: hwnd整形数: 指定的窗口句柄,如果此值为0,那么就在桌面创建此窗口 x整形数: 左上角X坐标(相对于hwnd客户区坐标) y整形数: 左上角Y坐标(相对于hwnd客户区坐标) w整形数: 矩形区域的宽度 h整形数: 矩形区域的高度 返回值: 整形数 : 创建成功的窗口句柄 示例: foobar = dm.CreateFoobarRect(hwnd,10,10,200,200) CreateFoobarRoundRect 函数简介: 创建一个圆角矩形窗口 函数原型: long CreateFoobarRoundRect(hwnd,x,y,w,h,rw,rh) 参数定义: hwnd整形数: 指定的窗口句柄,如果此值为0,那么就在桌面创建此窗口 x整形数: 左上角X坐标(相对于hwnd客户区坐标) y整形数: 左上角Y坐标(相对于hwnd客户区坐标) w整形数: 矩形区域的宽度 h整形数: 矩形区域的高度 rw整形数: 圆角的宽度 rh整形数: 圆角的高度 返回值: 整形数 : 创建成功的窗口句柄 示例: foobar = dm.CreateFoobarRoundRect(hwnd,10,10,200,200,30,30) FoobarClearText 函数简介: 清除指定的Foobar滚动文本区 函数原型: long FoobarClearText(hwnd) 参数定义: hwnd整形数: 指定的Foobar窗口句柄,此句柄必须是通过 CreateFoobarxxx创建而来 返回值: 整形数 : 0 : 失败 1 : 成功 示例: dm_ret = dm.FoobarClearText(foobar) FoobarClose 函数简介: 关闭一个Foobar,注意,必须调用此函数来关闭窗口,用SetWindowState也可以关闭,但会造成内存泄漏. 函数原型: long FoobarClose(hwnd) 参数定义: hwnd整形数: 指定的Foobar窗口句柄 返回值: 整形数: 0: 失败 1: 成功 示例: dm_ret = dm.FoobarClose(foobar) FoobarDrawLine 函数简介: 在指定的Foobar窗口内部画线条. <收费功能,具体详情点击查看> 函数原型: long FoobarDrawLine(hwnd,x1,y1,x2,y2,color,style,width) 参数定义: hwnd 整形数: 指定的Foobar窗口,注意,此句柄必须是通过CreateFoobarxxxx系列函数创建出来的 x1 整形数: 左上角X坐标(相对于hwnd客户区坐标) y1 整形数: 左上角Y坐标(相对于hwnd客户区坐标) x2 整形数: 右下角X坐标(相对于hwnd客户区坐标) y2 整形数: 右下角Y坐标(相对于hwnd客户区坐标) color字符串: 填充的颜色值 style 整形数: 画笔类型. 0为实线. 1为虚线 width 整形数: 线条宽度. 返回值: 整形数: 0 : 失败 1 : 成功 示例: dm_ret = dm.FoobarDrawLine(foobar,0,0,200,200,"FF0000",1,1) 注:当style为1时,线条宽度必须也是1.否则线条是实线. FoobarDrawPic 函数简介: 在指定的Foobar窗口绘制图像 此图片不能是加密的图片 函数原型: long FoobarDrawPic(hwnd,x,y,pic_name,trans_color) 参数定义: hwnd整形数: 指定的Foobar窗口,注意,此句柄必须是通过CreateFoobarxxxx系列函数创建出来的 x整形数: 左上角X坐标(相对于hwnd客户区坐标) y整形数: 左上角Y坐标(相对于hwnd客户区坐标) pic_name字符串: 图像文件名 trans_color字符串: 图像透明色 返回值: 整形数 : 0 : 失败 1 : 成功 示例: dm_ret = dm.FoobarDrawPic(foobar,0,0,"menu.bmp","FF0000") FoobarDrawText 函数简介: 在指定的Foobar窗口绘制文字 函数原型: long FoobarDrawText(hwnd,x,y,w,h,text,color,align) 参数定义: hwnd整形数: 指定的Foobar窗口,注意,此句柄必须是通过CreateFoobarxxxx系列函数创建出来的 x整形数: 左上角X坐标(相对于hwnd客户区坐标) y整形数: 左上角Y坐标(相对于hwnd客户区坐标) w整形数: 矩形区域的宽度 h整形数: 矩形区域的高度 text字符串: 字符串 color字符串: 文字颜色值 align 整形数: 取值定义如下
本文档为【大漠各个插件说明[整理版]】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_215732
暂无简介~
格式:doc
大小:68KB
软件:Word
页数:33
分类:生活休闲
上传时间:2018-02-02
浏览量:348