按键精灵教程精通.docx

上传人:b****8 文档编号:10506642 上传时间:2023-02-17 格式:DOCX 页数:27 大小:25.60KB
下载 相关 举报
按键精灵教程精通.docx_第1页
第1页 / 共27页
按键精灵教程精通.docx_第2页
第2页 / 共27页
按键精灵教程精通.docx_第3页
第3页 / 共27页
按键精灵教程精通.docx_第4页
第4页 / 共27页
按键精灵教程精通.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

按键精灵教程精通.docx

《按键精灵教程精通.docx》由会员分享,可在线阅读,更多相关《按键精灵教程精通.docx(27页珍藏版)》请在冰豆网上搜索。

按键精灵教程精通.docx

按键精灵教程精通

变量!

神奇的小柜子

变量就是会变化的量。

就像一个小柜子,我们可以在柜子里装载不同的东西,而当我们需要找到这些东西的时候,只要记住柜子的名字就可以了。

使用变量的方法是:

先定义(给柜子起名)、再赋值(将物品放进柜子)、最后使用(根据柜子名字找到放在其中的物品)。

使用Dim命令定义变量,例如:

Dimstr1//定义变量str1

Dimvar1=22//定义变量Var1,并且赋值为22

例子1:

使用变量设置输出文字的内容

1、下面红色的是3行脚本,请把他复制到“源文件”当中

Dimstr1

str1="你很聪明"

SayStringstr1

2、Dimstr1就是定义变量,也就是说我们创建了一个小柜子,给他起名为str1

3、str1="你很聪明"就是赋值,我们把"你很聪明"这几个字放到str1这个小柜子里

4、SayStringstr1表示我们输出str1这个变量的内容,也就是说把str1这个小柜子里的内容拿出来交给SayString这个命令去使用。

5、如果你希望修改喊话的内容,只要修改str1这个小柜子里的内容就可以了。

例子2:

变量的一些用法

a=1

把数字1放进柜子a中。

b="你猜对了吗?

"

把字符串你猜对了吗?

放进柜子b中。

字符串必须用""包含。

dc=3.14159265

把小数放进柜子dc中。

num1=1

num1=33

num2=55

sum=num1+num2

首先把33和55分别放入num1和num2中。

然后把他们取出来,做加法操作(加法是由CPU来处理的),把结果放在sum中。

结果sum等于88

num1=1

num1=33

num1被给值为1,然后又给值为33。

此时,num1中存储是的33。

1就被覆盖掉了。

没有了:

sum=sum+1

这句不等同于数学的加法,也是初学者不容易理解的地方。

我们只要想,把sum拿出来和1做加法,再放回sum中就可以了。

sum原来的值是88,做完加法后,sum等于89。

pig=1

pig=pig*3+pig

能猜出pig最后等于几么?

1*3+1。

结果是4

例子3:

使用变量输入1到100的数字

VBSCallRunApp("notepad")

Delay2000

a=1

b=100

Whilea<=b

  SayStringa

  KeyPress13,1

  VBSa=a+1

EndWhile

上面这个例子我们使用了2个变量,a和b。

条件判断!

是与否的选择

给出一个条件,让按键精灵进行判断,根据判断的结果执行不同的脚本,这就是“是”与“否”的选择。

下面针对上图着重解释一些相关概念:

∙表达式:

点击这里查看表达式的解释

∙取值为真:

表达式的计算结果是真。

∙执行后面的语句:

就是按键精灵执行判断语句之后,“条件结束”之前的语句,这也是我们要求按键精灵判断的目的所在。

∙循环执行:

就是按键精灵重复执行判断语句之后,“循环执行”之前的语句。

当条件不再满足时,就不再执行循环中的名字。

循环中间的一条或多条语句被称为“循环体”。

整个语句连起来可以读成:

如果表达式xxx为真(成立),那么就执行后面的语句(循环执行)。

例子:

用条件判断来执行不同的脚本

Dima,b

a=10

b=10

Ifa=b

   MessageBox"a等于b"

EndIf

上面这个例子,我们定义了2个变量a和b。

并且给a和b分别赋值。

If命令就是条件判断命令,如果a=b,那么就会弹出一个窗口。

如果我们修改a=20,b=10,那么a=b就是不正确的,也就不会弹出对话框。

颜色判断!

借我一双眼睛

人有一双眼睛,可以通过屏幕的提示来操作电脑。

按键精灵的脚本也有这么一双眼睛,那就是使用颜色判断功能,看到屏幕上的点的颜色。

下面我们用一个例子来一步步教你用颜色判断命令制作一个自动补血的脚本。

例子:

自动补血脚本(热血江湖)

//F3红,F4蓝

VBShong=70

//血量少于百分之多少(可自行设定)时,脚本自动吃红。

VBSlan=30

//蓝少于百分之多少(可自行设定)时,脚本自动吃蓝。

Remstart

Delay32

//如果启动脚本后有点卡,则视情况调整此延时。

Rem补红

IfColorhong*1.28+2154a53732

  //如果设定位置处的颜色大约等于没血时的颜色

  KeyPress1141

  //按键F3

Delay256

EndIf

Rem补蓝

IfColorlan*1.28+2118734b4a2

  //如果设定位置处的颜色大约等于没蓝时的颜色

  KeyPress1151

  //按键F4

Delay256

EndIf

具体步骤及方法:

1.首先在游戏中截个图,然后用按键精灵的抓点坐标/颜色按钮来选取血条中颜色比较鲜艳以及稳定的颜色条来,这个颜色条一般都在血条的边缘位置,如热血江湖就是在血条的上边缘处,我们确定这个边缘颜色条的一个纵坐标为y=5,如例,以后的取点抓色,则都在这一纵坐标下进行;

2.让自己掉一部分血,再截个图下来。

接下来就是颜色判断语句的选取了,众所周知,3D的游戏颜色一般都会有点变化,如果用“不等于血条颜色”来判断,则很容易出错,所以选择“如果颜色大约等于,则”这个判断语句会比较稳定一点。

具体为:

IfColorx5“没血时的颜色”2

//如果(x,5)点的颜色大约等于没血时的颜色

3.没血时的颜色怎样确定?

3D游戏里,多半这个没血时的颜色也会不一样的,所以我们要多取几个点,然后求出这几个点的平均颜色值来。

很幸运,我们在热血江湖里纵坐标y=5下血条中没血的横坐标上各取几个点后发现,它们的颜色只有两种:

525573和4a5173,所以我们很容易求出了这个没血的平均颜色值:

4a5373。

则判断语句变为:

IfColorx5“4a5373”2

4.判断语句,颜色,以及纵坐标都已经确定了,那还有横坐标呢?

别急,这个就是把抓色版做成%比加血设置的关键了。

同样可以用按键精灵的抓点坐标/颜色按钮功能来找坐标。

我们找到热血江湖中血条的最左端横坐标为x1=21,最右端横坐标为x2=149。

则血条的长度为L=x2-x1=128。

说到这里,大概大家都明白应该怎么设置%比加血了吧。

没错,就是用你想要自动加血时的血量%比值变量hong%,乘以血条的总长度L,再加上血条最左端的横坐标x1,就得到了按键精灵监测血量所抓色点的横坐标x的值:

x=hong/100*L+x1=hong*1.28+21,至此,%比吃红的颜色判断语句已经确定:

IfColorhong*1.28+2154a53732

5.整理一下,我们就得到了能%比补红设置的完整脚本了:

VBShong=70

//血量少于百分之多少(可自行设定)时,脚本自动吃红。

Rem补红

IfColorhong*1.28+2154a53732

//如果设定位置处的颜色大约等于没血时的颜色

KeyPress1141

//按键F3

Delay256

EndIf

至于补蓝的%比设置,当然是同理操作了。

OK,现在大家都明白怎么做了吧,那就赶快行动起来,亲自做个属于自己的脚本来,只有实践,才是学习的最佳捷径哦!

找图找色!

眼与脑的结合

上一课我们介绍了颜色判断,这一课我们来介绍更聪明的功能,找图和找色。

顾名思义,找图是在屏幕上查找指定的图像,而找色就是查找指定的颜色。

找图功能是“按键精灵VBS命令”里的FindPic命令(很抱歉还没有把这个功能做成界面操作的方式,大家只能人工去填写参数了)

使用找图功能的步骤

一、抓图:

把你想要找的图片抓下来保存为BMP格式

1.进入脚本编辑器,点击抓点抓色按钮

2.到你希望抓图的界面上按下PrintScreen(就是系统的抓图热键)

3.返回按键精灵的界面,这时会看到你刚才的抓图已经出现在抓图界面当中。

4.拖动鼠标左键将你想要找的图片区域选中,松开左键后会出现一个菜单,选择“保存为位图文件”这样你需要查找的图片就制作完成了。

二、找图:

使用FindPic命令进行找图

VBSCallFindPic(left,top,right,bottom,filename,similar,x,y)

在区域内从左到右,从上到下找文件名为filename的bmp文件,把找到的坐标保存在变量x和y中left,top,right,bottom都是整数或者整数型变量,说明了区域的左,上,右,下界限filename是一个bmp格式的图片,需要您自己抓取,最好是24位,把边缘都设为单一的颜色similar为相似度,取0.5到1之间的小数。

数值越大,对图片的相似度要求越严格,速度也越快。

推荐取0.9如果没有找到图片,则x和y的值都被置为-1推荐使用周围颜色单一的图片

例子:

VBSCallFindPic(0,0,1023,767,"1.bmp",0.9,x,y)

Ifx>=0andy>=0

  MoveToxy 

EndIf

在区域(0,0,1023,767)中找与文件1.bmp中的图形比较接近的地方,如果找到,则把鼠标移动到这个地方。

特别提醒:

6.30版之后,找图的文件路径可以直接引用附件中的图片,不需要释放,例子:

VBSCallFindPic(0,0,1023,767,"Attachment:

\1.bmp",0.9,x,y)

找色功能的技巧

找色功能相对简单一些,在“按键精灵VBS命令”里提供了3个找色命令FindColor、FindCenterColor和FindColorEx。

大家查看一下相关命令的说明即可。

控制台黑屏操作

功能介绍:

对Windows的控制台进行操作。

070110收录进按键精灵6.10版

命令名:

Open

作用:

打开一个控制台窗口。

参数:

无。

返回值:

无。

例子:

PluginConsole.Open()

PluginConsole.WriteLine("请随意输入几个字,然后按回车"&vbcrlf)

PluginuserInput=Console.ReadLine()

PluginConsole.WriteLine("您的输入是"&userInput&vbcrlf)

PluginConsole.WriteLine("演示脚本结束,请按下Y键,退出控制台"&vbcrlf)

RemWaitUserInputKey

PluginuserInput=Console.WaitKey()

IfuserInput=asc("y")oruserInput=asc("Y")

PluginConsole.Close()

Else

GotoWaitUserInputKey

EndIf

命令名:

Close

作用:

关闭控制台窗口。

参数:

无。

返回值:

无。

例子:

参见Open的例子。

命令名:

ReadLine

作用:

从控制台读取一行字符串。

参数:

无。

返回值:

字符串型。

返回用户输入的字符串。

例子:

参见Open的例子。

命令名:

WriteLine

作用:

向控制台写入一行字符串。

参数:

字符串型,需要写入的字符串。

返回值:

无。

例子:

参见Open的例子。

命令名:

WaitKey

作用:

等待用户在控制台的按键。

参数:

无。

返回值:

用户按下的键盘字符。

说明:

用这个命令,也可以给文件改名。

例子:

参见Open的例子

文件目录操作

功能介绍:

对文件和目录进行读写、复制等基本操作。

070110收录进按键精灵6.10版

命令名:

ExistFile

作用:

判断文件或文件夹是否存在。

参数:

字符串型。

要判断的文件或者文件夹的全路径。

返回值:

整数型。

返回值为0表示文件或文件夹不存在;返回值为1表示存在该文件,返回值为2表示存在该文件夹。

例子:

path="C:

/windows"

PluginisBeing=File.ExistFile(path)

MessageBox"您所选择的目录或者文件夹的状态是:

"&isBeing

命令名:

SelectDirectory

作用:

弹出选择文件夹的对话框,并得到用户选择的文件夹。

参数:

无。

返回值:

字符串型。

返回用户所选择的文件夹的全路径。

例子:

dimdirPath

PlugindirPath=File.SelectDirectory()

MessageBox"您所选择的目录是:

"&dirPath

命令名:

SelectFile

作用:

弹出选择文件的对话框,并得到用户选择的文件。

参数:

无。

返回值:

字符串型。

返回用户所选择的文件的全路径。

例子:

dimfilepath

Pluginfilepath=File.SelectFile()

MessageBox"您所选择的文件是:

"&filepath

命令名:

CopyFile

作用:

复制一个文件。

参数:

1字符串型,要复制的文件的全路径2字符串型,要复制的目标文件的全路径。

返回值:

例子:

dimfilepath

Pluginfilepath=File.SelectFile()

PluginFile.CopyFile(filepath,"c:

/1.txt")

MessageBox"您所选择的文件被拷贝到C盘根目录下的1.txt"

VBSCallRunApp("C:

/")

命令名:

MoveFile

作用:

移动一个文件。

参数:

1字符串型,要移动的文件的全路径2字符串型,要移动的目标文件的全路径。

返回值:

无。

说明:

用这个命令,也可以给文件改名

例子:

dimfilepath

Pluginfilepath=File.SelectFile()

PluginFile.MoveFile(filepath,"c:

/1.txt")

MessageBox"您所选择的文件被移动到C盘根目录下的1.txt"

VBSCallRunApp("C:

/")

命令名:

DeleteFile

作用:

删除一个文件。

参数:

字符串型,要删除的文件的全路径。

返回值:

无。

例子:

dimfilepath

Pluginfilepath=File.SelectFile()

PluginFile.DeleteFile(filepath)

MessageBox"您所选择的文件已被删除"

命令名:

ReadINI

作用:

从一个INI文件中读出一个字符串。

参数:

1要读的小节的名称。

一般在INI文件中用方括号括起来2要读的键名。

如x=123,等号前面的部分就是键名3INI文件的路径。

返回值:

字符串型。

读出的指定小节和键下面的内容。

例子:

dimvalue

PluginFile.WriteINI("小节名","键名","键名值","C:

/qmtest.ini")

Pluginvalue=File.ReadINI("小节名","键名","C:

/qmtest.ini")

MessageBox"键名为:

"&value

命令名:

WriteINI

作用:

往一个INI文件中写入一个字符串。

参数:

1要写的小节的名称。

一般在INI文件中用方括号括起来2要写的键名。

如x=123,等号前面的部分就是键名3要写的内容,用字符串表示4INI文件的路径。

返回值:

无。

例子:

参见ReadINI的例子

命令名:

OpenFile

作用:

打开一个文件,以备读写使用。

参数:

字符串型。

表示要打开的文件的全路径。

返回值:

整数型。

返回值为-1表示打开文件失败,否则返回文件的句柄。

例子:

path="stdlib.vbs"

PluginfileHandle=File.OpenFile(path)

Pluginfile20byte=File.ReadFile(fileHandle,20)

Pluginfileline=File.ReadLine(fileHandle)

PluginFile.CloseFile(fileHandle)

MessageBox"读取"&path&"文件20个长度内容是:

"&file20byte

MessageBox"读取"&path&"文件一行长度内容是:

"&fileline

命令名:

CloseFile

作用:

关闭一个已经打开的文件。

文件关闭后,其句柄不再有效。

参数:

整数型。

表示要关闭的文件的句柄。

返回值:

无。

例子:

参见OpenFile的例子

命令名:

ReadFile

作用:

从文件当前的读写位置读取一定长度的内容。

参数:

1整数型。

表示要读取的文件的句柄2整数型,表示要读取的长度。

返回值:

字符串型,读出的内容。

例子:

参见OpenFile的例子

命令名:

ReadLine

作用:

从文件当前的读写位置读一行内容。

参数:

整数型,要读取的文件的句柄。

返回值:

字符串型,读出的内容。

例子:

参见OpenFile的例子

命令名:

WriteFile

作用:

往文件当前读写位置写入一个字符串。

参数:

1整数型。

表示要写入的文件的句柄2字符串型,表示要写入的内容。

返回值:

无。

例子:

Pluginhandle=File.OpenFile("..\\按键精灵升级说明.txt")

PluginfileLen=File.GetFileLength(handle)

MessageBox"文件长度是:

"&fileLen

PluginFile.SeekFile(handle,fileLen-1)

PluginFile.WriteFile(handle,"123456")

PluginFile.WriteLine(handle,"abcdef")

PluginFile.CloseFile(handle)

VBSCallRunApp("..\\按键精灵升级说明.txt")

命令名:

WriteLine

作用:

同WriteFile,但会多写入一个回车换行符号。

参数:

同WriteFile。

返回值:

无。

例子:

参见WriteFile

命令名:

SeekFile

作用:

设置文件的当前读写位置。

参数:

1整数型。

表示要进行操作的文件的句柄2整数型,表示要设置的读写位置,以相对于文件头的字节数计算。

返回值:

无。

例子:

参见WriteFile

命令名:

GetFileLength

作用:

得到文件的长度。

参数:

整数型。

表示要进行操作的文件的句柄。

返回值:

整数型。

表示文件的长度。

例子:

参见WriteFile

获取系统信息

功能介绍:

获取操作系统的一些基本信息

070110收录进按键精灵6.10版

命令名:

GetOSType

作用:

获取当前操作系统类型。

参数:

无。

返回值:

整数型。

Win98系统返回为0;WinNT/2000/XP返回为1。

例子:

Plugins=GetSysInfo.GetOSType()

Ifs="1"

   MessageBox"您的操作系统版本是2000/XP"

Else

   MessageBox"您的操作系统版本是98"

EndIf

Plugins=GetSysInfo.GetScreenResolutionX()

MessageBox"您的当前屏幕分辨率宽度:

"&s

Plugins=GetSysInfo.GetScreenResolutionY()

MessageBox"您的当前屏幕分辨率高度:

"&s

Plugins=GetSysInfo.GetColorDep()

MessageBox"当前屏幕色彩深度:

"&s

Plugins=GetSysInfo.GetTime()

xs=int(s/1000/60/60)

fz=int(s/1000/60)-xs*60

m=cint(s/1000)-fz*60-xs*60*60

MessageBox"您的操作系统从启动到目前的时间:

"&xs&"小时"&fz&"分钟"&m&"秒"

Plugins=GetSysInfo.GetDateTime()

MessageBox"您的操作系统日期和时间:

"&s

Plugins=GetSysInfo.GetHDDSerialNumber()

MessageBox"您的硬盘序列号是:

"&hex(s)

命令:

GetScreenResolutionX

作用:

获取当前屏幕分辨率宽度。

参数:

无。

返回值:

整数型。

返回当前屏幕的宽度。

例子:

参见GetOSType的例子

命令:

GetScreenResolutionY

作用:

获取当前屏幕分辨率宽度。

参数:

无。

返回值:

整数型。

返回当前屏幕的宽度。

例子:

参见GetOSType的例子

命令:

GetColorDep

作用:

获取当前屏幕色深度(颜色质量)。

参数:

无。

返回值:

整数型。

返回当前屏幕的色深度(颜色质量),一般为4,8,16,24或32。

例子:

参见GetOSType的例子

命令:

GetTime

作用:

得到系统启动到目前的时间。

参数:

无。

返回值:

整数型。

以毫秒表示的系统启动到目前的时间。

说明:

一般用两次调用GetTime命令的结果相减,可以得到两次调用的时间差。

例子:

参见GetOSType的例子

命令:

GetDateTime

作用:

得到当前系统日期和时间。

参数:

无。

返回值:

字符串型。

返回当前系统日期和时间,如“2006-05-2015:

27:

31”

例子:

参见GetOSType的例子

命令:

GetHDDSerialNumber

作用:

得到硬盘第一个分区的序列号。

参数:

无。

返回值:

整数型。

返回硬盘第一个分区的序列号。

例子:

参见GetOSType的例子

内存读取

功能介绍:

实现对计算机内存的读取操作功能。

070110收录进按键精灵6.10版

命令名:

SetProcessLive

用途:

设置一个进程的优先级。

参数1:

窗口句柄,如果该参数输入-1则代表当前进程。

参数2:

进程等级,取值范围1-6,其中3为标准级别。

返回值:

如果设置成功会返回1否则返回0。

命令名:

GetProcessLive

用途:

获得一个进程的优先级。

参数1:

窗口句柄,如果该参数输入-1则代表当前进程。

返回值:

如果获得成功返回该进程的优先等级,否则返回0;

命令名:

Read8Bit

用途:

根据地址读取8位数值。

参数1:

窗口句柄。

参数2:

内存地址。

返回值:

读取成功返回该地址的值否则为0。

命令名:

Read16Bit

用途:

根据地址读取16位数值。

参数1:

窗口句柄。

参数2:

内存地址。

返回值:

读取成功返回该地址的值否则为0。

命令名:

Read32Bit

用途:

根据地址读取32位数值。

参数1:

窗口句柄。

参数2:

内存地址。

返回值:

读取成功返回该地址的值否则为0。

命令名:

ReadSingle

用途:

根据地址读取32位浮点数值(即VB的Single型)。

参数1:

窗口句柄。

参数2:

内存地址。

返回值:

读取成功返回该地址的值否则为0。

命令名:

ReadDouble

用途:

根据地址读取64位浮点数值(即VB的Double型)参数1:

窗口句柄。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 管理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1