1、【简单易懂】教大家如何用按键精灵多线程处理,附带如何抓图教程看完之后如果还有些地方不能把握,可以参考经验片,程序是死的,人脑是活的 http:/ 1. 游戏截图一张.(必然的) 2.按键精灵.(这不是废话么),这里我用的是按键精灵 8 3.如果看不懂我也没办法了,我认为我写的够清楚了有了以上 2 样东西,我们就可以实现一切功能了,这里为了体现多线程的含义,就拿摸猪做个例子吧!原代码等下附上 -如何制作按键精灵需要的图片- 这里是重中之中做不好图,在好的源码也不认识!根据例行要求,当然是准备游戏截图一样了,图在下面 因为摸的是药草,所以我们把图片放大 8 背后(这里用 WINDOWS 自带的画图
2、工具便可)截取需要的图片应该是这个样子的然后咱们用铅笔工具把周围都涂上其他的颜色(4 个顶点颜色必须一样),这样呢,程序就会把背景色当成透明色,方便找到“阳光药草“ 这 4 个子就变成这个样子了然后我们将改好的图片 另存为 24 位 BMP 图像变可因为不同的电脑,不同的系统,图片显示的可能不一样,所以授人以鱼不如授人以渔为了方便大家吸收,特地找来了一张 GIF 图片,帮助大家吸收抓图部分做图部分-代码部分-因为是摸猪,我希望摸完猪后通过图片来识别草,并且拿起来,所以这里咱们要做的图不只一张,这里笔者也不一一举例了,大家按照上面的方法做图便可有了图,接下来的当然就是代码部分,这里我要谈谈帖子开
3、头便引入的多线程概念Q&AQ:什么是多线程?A:在一个程序中,这些独立运行的程序片断叫作“ 线程”(Thread),利用它编程的概念就叫作“多线程处理 ”。Q:多线程处理有什么好处?A:程序的运行速度可能加快!拿我们这个帖子的找图为例,大家是希望我们的程序找完一张在接着找另外一张图呢?还是希望我们的程序同时找多张图片呢?可是这里,我们的图片高达 5 张多.答案很明显,同时找多张图片的效率要快的多这里为了让大家知道多线程在按键精灵中的用法,我写了个简单的小例子BeginThread ms1 BeginThread ms2Sub ms1MsgBox “线程 1“End SubSub ms2MsgB
4、ox “线程 2“End Sub这段代码相信大家都看的懂吧,就是让程序弹出 2 个对话框 分别是“ 线程 1” “线程 2”为了体现多线程的好处,我们在看看这段代码不用多线程的写法Call ms1Call ms2Sub ms1MsgBox “线程 1“End SubSub ms2MsgBox “线程 2“End Sub大家可以把这 2 段代码复制进按键精灵,运行一下,我们可以看到,多线程处理的代码,对话框时同时弹出来的而,普通的代码运行则是先弹出“线程 1” 等我们点了【确定】按钮再弹出“线程 2”下面谈谈找图的函数FindPic 0,0,1024,768,“Attachment:基础药草.b
5、mp“,0.7,intX,intY -这句话的意思是让程序找指定图片If intX 0 And intY 0 Then -如果找到 intX,intY 的值都是大于 0 的,不然是-1,所以这里判断找到图了没KeyDown “Alt“, 1 -Delay 500 找MoveTo intX,intY 到MoveR 10,10 图Delay 200 后的LeftClick 1 一系列KeyUp “Alt“, 1 操作 0 And intY 0 ThenKeyDown “Alt“, 1Delay 500MoveTo intX,intYMoveR 10,10Delay 200LeftClick 1Ke
6、yUp “Alt“, 1End IfEnd SubSub Selectcao2/找血红药草FindPic 0,0,1024,768,“Attachment:血红药草.bmp“,0.7,intX,intYIf intX 0 And intY 0 ThenKeyDown “Alt“, 1Delay 500MoveTo intX,intYMoveR 10,10Delay 200LeftClick 1KeyUp “Alt“, 1ElseEnd IfEnd SubSub Selectcao3/找魔法药草FindPic 0,0,1024,768,“Attachment:魔法药草.bmp“,0.7,intX
7、,intYIf intX 0 And intY 0 ThenKeyDown “Alt“, 1Delay 500MoveTo intX,intYMoveR 10,10Delay 200LeftClick 1KeyUp “Alt“, 1End IfEnd SubSub selectcao4/找白色药草FindPic 0,0,1024,768,“Attachment:白色药草.bmp“,0.7,intX,intYIf intX 0 And intY 0 ThenKeyDown “Alt“, 1Delay 500MoveTo intX,intYMoveR 10,10Delay 200LeftClick
8、 1KeyUp “Alt“, 1End IfEnd SubSub selectcao5/找阳光药草FindPic 0,0,1024,768,“Attachment:阳光药草.bmp“,0.6,intX,intYIf intX 0 And intY 0 ThenKeyDown “Alt“, 1Delay 500MoveTo intX,intYMoveR 10,10Delay 200LeftClick 1KeyUp “Alt“, 1End IfEnd Sub/ 这里把多线程操作封装在了一个子程序里Sub 多线程找图BeginThread Selectcao1BeginThread Selectcao2BeginThread Selectcao3BeginThread Selectcao4BeginThread Selectcao5End SubSub 开始摸猪MoveTo jx,jyDelay 500LeftClick 1End Sub-温馨提示-经过本人试验,多线程操作对于按键精灵来说有一定的缺陷,我们尽量不要用多线程处理对键盘进行一些操作,不然会出 BUG看帖回帖是美德!谢谢