大漠多线程例子(win10为什么不能用大漠插件?)
时间:2024-01-15 18:29:52 | 分类: 基金问答 | 作者:admin| 点击: 59次
win10为什么不能用大漠插件?
那是因为你方法不对。在使用大漠之前,先注册大漠,这里我以插件版本3.1233为例(如果是其他版本你自己修改),代码如下:
Call Register_dm
Sub Register_dm
Set ws=createobject("Wscript.Shell")
ws.run "regsvr32 atl.dll /s"
Set ws=nothing
PutAttachment ".", "dm.dll"
PutAttachment ".Plugin", "RegDll.dll"
Call Plugin.RegDll.Reg(".dm.dll")
Delay 200
Set dm = createobject("dm.dmsoft")
ver = dm.Ver()
If ver "3.1233" then
Set dm = nothing
Set ws=createobject("Wscript.Shell")
ws.run "regsvr32 .dm.dll /s"
Set ws=nothing
Delay 1000
Set dm = createobject("dm.dmsoft")
Delay 200
ver = dm.Ver()
If ver "3.1233" then
MessageBox "插件版本错误,当前使用的版本是:" & ver & ",插件所在目录是:" & dm.GetBasePath() & Chr(10) & "请关闭程序,重新打开本程序再尝试"
End if
End If
End Sub
大漠注册成功后,如果你开启线程,在线程里面前还要加一句Set dm = createobject("dm.dmsoft")
创建大漠对象,这样,你的问题就解决了。
我的按键精灵多线程不对
所谓多线程,事实和单线程一个样子,cpu并不可能做到真正的“同时”,本质上,每个核一个时钟所做的事情就是那么多,不管上面程序怎么写,计算机都是按时序执行的(这些牵涉到微机原理以及单片机的东西,要懂底层才能明白,如果纯做应用层,不需要明白,不过,不管怎样写代码,cpu是不可能做到绝对“同时”的,明白这点就行了),想执行时间快,就必须先把数据调入内存,在内存里面完成,结束后才释放内存,这种方法是最快的,但是这样做非常耗内存(具体怎么做按键精灵是无法操作的,这个也不是应用层要做的事情,所以你知道就好,不用理会这个问题)回到你的问题,为了加快你找色速度,首先尽量缩小你找色的范围,之后,把相似度尽量提高,相似度是1时候最快,但是很容易影响找色结果,这个你自己看着办,建议用大漠插件,大漠插件里面有一个找多色指令,这个指令几毫秒可以完成找多色,比你自己用按键自带插件,写一个函数的方法快多了,本人认为大漠插件能解决你的问题。
如何用大漠查找指定类型子窗口
请问哪位高手能帮我写个大漠多窗口注册和绑定的多线程例子吗?我这里几开95o5557i这个号码你查找群时手动按号码才可以进,复制的不行进群记得要报到
按键精灵单线程也可以操作多窗口 - 知乎
不开多线程,在单线程内如何对多个窗口分别进行操作,以实现多开目的?
本例中,讲解的是使用大漠插件,通过创建多个大漠对象,切换大漠对象对多窗口分别进行操作。
『1』获取要绑定的窗口句柄,存放在窗口句柄数组中。
它们的区别在于,前判断是先判断条件符不符合然后进入循环体,
而后判断是先进入循环体执行一次之后再进行判断:
前判断:
后判断:
刚接触大漠的童鞋可能对于对象的概念比较模糊。
其实作为一个单纯的使用者,暂时不需要去了解更深的原理。咱们只需知道想要用大漠的命令,就要拿到它的使用权。
有没有童鞋是这样认为的:觉得大漠的命令一定是dm.movetox,y或者dm.ver
其实不是这样的,你可以这样使用大漠命令,xx.movetox,y或者oo.movetox,y咱高兴用什么就用什么。这个取决于我们创建大漠对象时所命名的对象名。
我们创建一个大漠对象,命名为ha:
那么,咱们在使用大漠命令的时候,就应该这样使用:
我们现在回到例子中,一个窗口对应创建一个大漠对象。
按键中不支持数组形式对象直接使用命令,例如:
我们需要创建一个公用的对象,用于将数组形式的对象转为变量名形式的对象,作为对象切换的一个容器。
◎进入for循环调用子程序“切换对象”,把i的值传递给子程序。
脚本的主循环,通过不断的切换对象,向对应的对象下达操作,从而实现脚本多开的目的。
但是需要注意一点,由于是切换对象进行操作的,所以对这些窗口的操作并不是同时进行的。第一个窗口执行完之后才会第二个窗口,顺延下去。
想要了解更多的按键课程,欢迎关注按键精灵知乎账号,微信公众号“按键精灵”、按键论坛!!
【精易】2019开源大赛(第四届)参赛作品信息集合
精易论坛第四届开源大赛概况
本次参赛情况:
参赛作品总数:301
参赛评分最高:151
参赛知名人士:邓学彬、神2、酷宝贝、洫蜘蛛、花老板等
开源奖励
01
第1名奖励2500人民币
02
第2名奖励1000人民币
03
第3名奖励500人民币
前1~3名额外赠送1个加密狗版vip模块(含5年授权时间)+免费参加第6期特训
04
第4~10名五折参加特训
前1~6名奖励正版易语言加密狗1个
05
前20名奖励“赞助会员”用户组
06
前25名奖励以下培训班其中一套的视频录像
顶级vip培训班、实训班、特训、《安卓逆向安全攻城狮》培训班、《网页Flash数据分析技术》学习班、《安卓SO库解密剖析详解》、《多线程》培训班、《深入学习POST-JS加解密专项特训》、特训班、《C#Winform编程特训》、《安卓加固与脱壳》、《、JS高端教学》、《特训》
滑动阅读
易语言,如何实现控制多个游戏窗口?
.版本 2
.支持库 eAPI
.*部变量 ID, , , "0"
.*部变量 i, 整数型
.*部变量 hwnd, 整数型, , "0"
.*部变量 k, 整数型
窗口句柄 = 窗口_取句柄 (“GameApp.exe”, “GAMEAPP”, )
大漠.初始_注册大漠 ()
大漠.初始_创建大漠多线程 ()
.计次循环首 (进程取ID数组 (ID, “GameApp.exe”), i)
.计次循环首 (取进程窗口 (ID [i], hwnd), k)
.如果真 (取窗口类名 (hwnd [k]) = “GAMEAPP”)
大漠.后台_绑定窗口 (, hwnd [k], “gdi2”, “windows3”, “windows”, 0)
.如果真结束
.计次循环尾 ()
.计次循环尾 ()
游戏工作室建立三步曲2019:脚本、防封与人工智能
很高兴的说一句,目前为止,前两篇文章《第一篇,成本与防封号》,《第二篇,手动模式的选择》收到诸多好评与赞扬,各位做游戏工作室的朋友对我的认可更是令我惊讶,所以呢,这第三篇结尾文章就多说点,希望对大家有点用。
第三章主要说“脚本的注意事项”,“脚本入门的一些通用模块”,“图色与算法”,“人工智能”。其中会穿插一些很实用的代码,能看懂的更好,看不懂的可以百度。
写之前呢,说一下本人:
我还是个宝宝,真的!还是个任性的宝宝,从小爱数学,于是高考数学146.从小不大喜欢语文,所以语文91.考了个全国排名前60的大学的数学系。混了四年,对,你没听错,混!毕业后,突然喜欢上编程,自学了计算机,学了数据库管理,java。
工作第二年的时候,工资拿到一万多。然后,懒得做网页了,辞职了。自学了c#和Windows编程。每天自娱自乐,开心得很。
最近呢,尤其2019年上半年,公司大量倒闭,企业大量裁员,看到了好多人迷迷茫茫,哭哭啼啼。总觉得做点什么好,就决定写几篇文章。不求播撒光明于天下,只是不想众多穷苦黎民泯灭于黑暗。好好看,仔细想,多问多学。保住一日三餐,足够。
前两篇教大家如何在游戏里赚钱,这篇教大家一些简单的脚本知识。个人有三个建议:
第一,科技,服务于人民。不要拿去祸害社会。
第二,多学知识,少搞游戏。本事学成,进正规公司,做个软件工程师不好?能行走于阳光之下,何必潜行于黑夜之间。
第三,只要能保住温饱,永远不要停止学习。
如果有人想学脚本,想学编程,告诉大家三个原则,如果你满足不了,建议你别做。
第一:技术员永远走在科技的前沿,哪怕迎着失败和嘲笑。
第二:技术员永远保持着最冷静的心态和最淡泊的耐心。
第三:保持终生学习,并且,学会的一定要教别人。当然,这些都是题外话,不过也是真心话。
下面开始正文。
先建立一个前提,本文所说的脚本,是这样定义的:
一个角色攻击力1,一个boss血量1000,所以,这个角色想杀了这个boss,需要攻击1000次。目前市场上有两种替代人工的办法:
第一种,将人物的攻击修改成999999,杀这个boss,一刀。
第二种,模拟键盘鼠标,让鼠标自动点击这个boss1000下。
第一种属于作弊,会对游戏产生大量伤害,尤其是点卡游戏,我们说的脚本不包括这些。
第二种,不修改游戏内存数据,甚至不读取游戏的内存数据,做到玩家怎么干,电脑就怎么干,我们称为脚本。
如果这套思路做成的软件,不用在游戏上,用在自动化办公上或者工厂机械上,我们称为机械自动化或人工智能。
脚本的注意事项。
为什么这个先说,因为能写脚本的毕竟是少数,大部分的人都是买脚本用。这个模块,也可以告诉大家,什么样的脚本最好别买,什么样的脚本比较容易封号。所有的游戏脚本,都要有一个原则:“低调”。本来就是灰色产业,能多低调就多低调,越不引人注意越好,又不是相亲当英雄,搞得那么光明堂皇干嘛?
下面分10点详细说明。
第一个注意事项:脚本界面。
拿网易某个游戏来说,很多脚本的界面上有什么买鬼切草,巫医等和游戏有关的字符或图片。如果我是网易的程序员,在随便一个时间点,对电脑桌面截个图。Windows的底层函数:CopyFromScreen(newPoint(X,Y),newPoint(0,0),bit.Size);很容易就能做到。一旦看到你在用脚本,迟早封你!
第二个注意事项:脚本名称。
如果一个脚本的exe名字就叫网易xxx脚本,即使打开后界面上没有相关字符也没用,因为exe名称决定了你的程序在任务管理器里面的进程名称。而一台电脑的所有当前进程名称,也是很容易获得的,这个代码行数较多,就不贴出来,有兴趣的朋友可以百度。当然,也有隐藏进程的方法,但是exe名称改掉不是更好吗?
第三个注意事项:调用一些需要释放的函数或者类时,一定要记得释放。
比如声明一个bitmap。Bitmapbit=newBitmap(width,height,PixelFormat.Format24bppRgb);用完之后,一定记得写上bit.Dispose();把它释放掉。不然,就会越积累越多。游戏变卡不说,很多检测程序都会注意这块。你内存一直飙升的话,别说反脚本程序,360都会检测出来并且提醒你。
第四个注意事项:调用的第三方插件一定要有讲究。
很多初学者学脚本的时候,喜欢用按键精灵+大漠插件,还不加外壳。对此,我只能说,自己写个程序练练手是可以的,用这种脚本进入市场,除了封号还是封号!为什么?因为知道按键精灵的人都知道,按键是用来干嘛的?写脚本的。大漠插件是用来干嘛的?提供公用函数,方便写脚本的。那大点的游戏公司会不知道?不封你,只是想把你养肥了再杀而已。这里,不是说不能用按键和大漠,用的时候麻烦写复杂点,加点保护,加点外壳,大漠还可以修改自身的特征码呢。
第五个注意事项:写模拟按键都是要写延迟的。
如果真的想把脚本用起来,建议延迟改成随机数。模拟点击1000下,每次间隔都是一秒,你的手有那么准?一查就知道是脚本再点啊。
第六个注意事项:少用多线程。
很简单的道理,正常人就一个脑子一双手,不可能多线程操作,一查就知道是脚本。对于有些游戏,却是必须多开,比如梦幻的新手任务,一般都是多开做,但是就算多开,也可以不用多线程啊,通过图色分析每个界面进行到哪一步了,建立一个优先级别,先操作哪个后操作哪个,绝对来得及,就算慢点吧,慢点咋了?能慢几分钟?封组号,重新练得多久?
以上6点说的是增加被封几率。下面说几个坑定被封的,建议碰都别去碰。
第一个:修改内存,其实呢,这个可以不说,因为大家基本都不干这种傻事。
第二个:截获数据包。违法,违法,违法。重要的事情说三遍。并且很容易被查到。
第三个;后台模拟,目前后台模拟有两种api,一种是sendMessage,一种是postMessage。Vb,vc,C++和c#是可以直接调用这两个api的,易语言和大漠插件是把这两个api封装了下。这两种api都是利用了Windows的通信机制,消息传递。很遗憾的是,几年前,csdn论坛上就有人写了一个帖子,讲述了正常的按键和后台按键的检测,并且方法不难,代码不多,所以游戏公司也能很容易掌握。
第四个:虚拟机,尤其是服务器上装虚拟机。这玩意,以前搞诛仙3的时候用的很爽,天龙八部也很爽,地下城有些时间也很爽。但是吧,我有个同学,在爱奇艺,年薪三四十万,技术比我高那么一点点。直接对我说,你要是搞游戏,虚拟机别碰,具体为什么没对我说,但是既然有大神说了,还是别碰比较好。
这4点为什么说坑定封呢?因为搞得太嚣张了,嚣张到如果你是游戏的运维人员,你也忍受不了。一般人,搞个几十台电脑,慢悠悠赚点小钱,对游戏本身影响真心不大,人家也就睁一只眼,闭一只眼了。脚本一旦用了这4点,相当于你想把别人的游戏一锅端了,你把别人往死里搞,别人不把你往死里搞?
脚本入门的一些通用模块。
不管你选择什么语言,只要你在Windows上做,你必然要用到一些api函数,很多新手觉得很难,找又找不到,用又不会用,然后放弃了写代码,继续跑去板砖。
最近抖音流行一句话:你若堕落,神仙也救不了你,你若坚强,绝处也能逢生。学编程,本身必须要有坚强的意志。当然,没人教确实很容易绝望,所以这里贴出一些代码,希望能帮到一些在没有足够条件下,却真心想学编程的小朋友和大朋友。
以下所有的api函数,只提供名称,具体应用,自己去百度,都能百度到。
第一步:获得游戏焦点,专业的说法,是获取句柄,百度上有各种方法,我给大家说两种最简单的。对于单窗口WindowFromPoint(intxPoint,intyPoint);返回参数是指定坐标的窗口句柄。对于多窗口,首先获取桌面句柄,GetDesktopWindow();然后遍历桌面的子句柄,EnumChildWindows(IntPtrhWndParent,CallBacklpfn,intlParam);通过名称筛选。
第二步,由句柄得出窗口的四角坐标,也就是界面的位置。先自定义结构体,publicstructRECT
{
publicintLeft; //最左坐标
publicintTop; //最上坐标
publicintRight; //最右坐标
publicintBottom; //最下坐标
}
然后获取坐标GetWindowRect(hWnd,reflpRect);这样你就能知道界面在屏幕的哪个位置,然后可以计算出鼠标的点击位置和找图的区域。
第三步,截图。分前台和后台,不建议大家用后台取色,所以这里只说前台。.CopyFromScreen(newPoint(X,Y),newPoint(0,0),bit.Size);截屏函数。
第四步,模拟鼠标键盘。也是说前台。鼠标移动,SetCursorPos(intX,intY);鼠标点击mouse_event(intdwFlags,intdx,intdy,intdwData,IntPtrdwExtraInfo);键盘:keybd_event(bytebVk,bytebScan,uintdwFlags,uintdwExtraInfo);延迟函数:Thread.Sleep(1000);
其他:读取文件,ReadLine()。随机数,Random()。窗口最大最小化SetForegroundWindow(IntPtrhWnd);注册热键,RegisterHotKey();
有了这些函数,入门就简单的多了。但是这些只是基础,想写出完整的脚本,还需要很多。
图色与算法。
知道怎么让鼠标点击,却不知道点哪里,也没用。所以,判断信息对脚本很重要,说成最重要也不为过。常用的3种方法,截获数据包,读取内存,图色分析。
第一种方法,已经讲过,强烈不建议。
第二种方法,读取内存,现在的主流方式。基本流程就是找基址,找指针,然后通过函数ReadProcessMemory读取数据。这种方式蛮好的,但是呢,每次游戏跟新就要更新代码,就要重新找基址。对于一个团队,到没什么,对于散人来说,增加了不少工作量。并且,游戏对内存保护这块越来越严厉,动不动来个十几级的偏移。所以这里说一下图色分析,图色分析好多脚本都用到了,但是极少有脚本全程用图色分析,大部分都是一半图色,一半内存。
我写脚本,就喜欢全图色,为啥呢?写好之后基本不用更新,除非游戏界面发生变化。并且,全图色的,基本不封号。因为我们不读取内存,不碰后台,不碰多线程,全*鼠键模拟。不是说检测不到我们,只是我们很低调。但是全图色很难写,因为有些地方,确实,人都不好分辨,怎么去分析?这里,我们引进算法,相信很多人多多少少听过算法,但是不熟悉。
简单的来说,算法就是比较复杂的数学公式。区别是,公式是针对所有问题的,算法有很多是针对单个问题的。比如地下城,哪个怪离你最近?怎么选择最近的路线去接近这个怪?怎么单个消灭能达到最快?这些就可以用算法。再比如梦幻的新手任务,如果使用前台模拟,必然要用到优先度算法,确保完成任务的平均时间差不多。关于算法,往往涉及到核心问题的解决方案,这里不好多说,有兴趣的可以多研究研究。可以这么说吧,图色分析加算法,应该是未来几年高质量脚本的趋势。
人工智能。
个人认为,好的游戏脚本,就应该像人一样去操作,甚至像人一样去分析。反过来说,游戏的制作宗旨,是为了给玩家用,而不是为了反脚本。模拟人工,你永远能立于不败之地。那么我们先来讨论下人的分析思维。人的大脑是根据听觉视觉嗅觉味觉触觉等获取信息的。
对游戏而言,只有视觉和听觉。对于脚本而言,99%的信息靠视觉。我们重点谈论视觉,人的大脑,刚出生的时候,没办法分析文字,因为没有概念。至于视频,本身就是图片,只不过帧数比较快而已。所以,大脑分析最多的是图片。一张图片,并不是全部的信息有用。或者说,并不是每一块信息同等重要。
举个很污的例子,你在看片,更多的是在注意女主角,而不是男主,更多的是在注意女主的某些部位,而不是手指头发。那你为什么会养成这种分析习惯呢?因为我们的大脑,在长期的分析中,提取了很多模型。所以你知道一棵树是什么样,你知道一条狗是什么样。同样,在脚本中,我们也需要模型(鉴于商业机密和只是产权,这里只说建立模型的思路,不能写具体步骤)。
这个模型,可能是某一个对话框,也有可能是某个字。对于字库,是必须的,甚至是首要的,大漠插件有自己的字库,百度识别也有自己的字库,都可以直接去调用。但是我建议,大家建立自己的字库,虽然时间比较长,但是建成后,真心很好用。至于有多好用,参照第二章写商人的利润的那段。
当然,仅仅有字库,是远远不够的,还需要很多别的模型,比如npc和怪物。你的角色,如何知道身边有哪些怪物,大部分的作者用的是基址遍历。这种方法谈不上好与不好,我的评价是两个字:能用。除了基址遍历,我们可以用建模型的办法,每个npc都有特征,不然玩家怎么分辨?把这些特征抓住,转化成特征值,通过特征值,照样能知道身边有哪些npc。知道了界面上的字和npc,你还需要知道鼠标在哪里。
很多游戏的鼠标都有自己的样子,但是这些样子几乎是不变的,或者小范围变化。否则,玩家怎么识别?既然人能一眼看出来,那说明,这个模型不难建立。
建立模型,一般从找色开始,图片的像素,有像素值,有些地方是固定的,有些地方是规律变化的,抓住这些,也就抓住了建立模型的关键。有了模型,你就能让你的脚本像人一样,通过女主的表情就知道男主用了多大力。有了分析,还需要操作。人的操作,是有血肉的,而不是机械的,是休闲式的,而不是拼命式的。
有些人写脚本,一丁点时间都不浪费,让游戏里的角色一直打打打,杀杀杀,跑跑跑。还很自以为是的认为利润最大化了。嘻嘻,反正我不这么想,不封号才是利润最大化。所以我的脚本,跑跑停停,偶尔还故意点错,跑路偶尔跑偏,然后修正一下,打怪偶尔放错技能,然后多一回合。哎,我的利润真心没多大,就是比较省心,因为很少封号。
讲个笑话,以前有个游戏的某个道具可以连续吃,而我呢,吊儿郎当的写代码,导致偶尔会同时吃掉两个,把一些客户心疼的,不要不要的,然后让我改,我懒得改。然后有两个客户跑去用别人的脚本了,临走前还*我一顿,说我垃圾,不负责,不为客户找想,不当家不知道柴米油盐贵。但是,过了半个月,就回来了。原因估计大家也能猜到。所以啊,人嘛,总是会犯错的,所以啊,脚本呢,也是需要偶尔犯错滴。
游戏这行,本来就是细水长流,想一夜暴富,还是去抄大蒜比较好。
2019年,游戏工作室建立三步曲,写了3篇,用了3天时间,你说你们要是不回复,对得起我大冬天敲键盘的手吗?
好了,写完了,明天又要敲代码了,至于这些文章能帮到多少人,尽人事,听天命吧。写首歪事送给大家,写完去给老婆洗碗。。。
劝君穷时少饮酒,一杯能解几斤愁?劝君闲时多上进,来日方长不可停。