详解!!!!!!!!!!!!!!!! ——你可以理解为按键码表,其实也就这么个意识键盘命令介绍键盘命令分为两大类:键盘模拟命令和键盘控制命令。
键盘模拟命令可以模拟我们日常操作键盘的行为。操作键盘的动作分为三类:按下、弹起、按下并弹起。
键盘控制命令可以在脚本执行过程中通过键盘控制脚本行为。[KeyPress、KeyPressS、KeyPressH]
格式: KeyPress {键盘虚拟码},{次数}
解释: 先“按下”再“弹起”键,模拟我们平时的“按键”操作.
我们在使用键盘的时候有两种操作,一种是”按下”键,一种是”弹起”键.将这两个动作连续进行,就是一个完整的”按键”动作.
KeyPressS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的键盘都可以使用
KeyPressH: 硬件模拟方式,仅支持PS(圆口)的键盘
例子:
KeyPress 65,1
65是A键的按键码,上面的语句表示按A键1次[KeyDown、KeyDownS、KeyDownH]
格式: KeyDown {键盘虚拟码},{次数}
解释: “按下”键,模拟我们平时的“按下”操作
注意:有些键在按下之后,会和其他键产生组合效果,比如“Alt/Ctrl/Shift”,
如果使用“按下Alt”命令,那么之后的“按键”动作将变成“Alt+A”等组合动作,
因此记得在必要时使用“弹起”命令将组合键释放,避免影响键盘的正常使用.
KeyDownS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的键盘都可以使用
KeyDownH: 硬件模拟方式,仅支持PS(圆口)的键盘
例子:
KeyDown 65,1
65是A键的按键码,上面的语句表示按下A键1次[KeyUp、KeyUpS、KeyUpH]
格式: KeyUp {键盘虚拟码} {次数}
解释:“弹起”键,模拟我们平时的“弹起”操作
KeyUpS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的键盘都可以使用
KeyUpH: 硬件模拟方式,仅支持PS(圆口)的键盘
例子:
KeyUp 65,1
65是A键的按键码,上面的语句表示松开A键1次鼠标命令介绍鼠标命令分为三大类:模拟鼠标按键命令、模拟鼠标移动命令、鼠标控制命令。
模拟鼠标按键可以模拟鼠标的左键、右键、中键和滚轮的动作。
鼠标的动作分为三类:按下、弹起、按下并弹起。
模拟鼠标移动命令支持移动到屏幕的某个坐标、将鼠标移动一个相对的坐标
鼠标控制命令可以在脚本执行过程中通过鼠标控制脚本。[LeftClick、LeftClickS、LeftClickH]
格式:LeftClick {次数}
解释:在鼠标当前位置模拟点击鼠标左键.{次数}可以控制点击的次数
LeftClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用
LeftClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标
例子:
LeftClick 5
在当前鼠标的位置单击鼠标左键5次[RightClick、RightClickS、RightClickH]
格式:RightClick {次数}
解释:在鼠标当前位置模拟点击鼠标右键.{次数}可以控制点击的次数
RightClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用
RightClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标
例子:
RightClick 5
在当前鼠标的位置单击鼠标右键5次[MiddleClick、MiddleClickS、MiddleClickH]
格式:MiddleClick {次数}
解释:在鼠标当前位置模拟点击鼠标中键.
MiddleClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用
MiddleClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标
例子:
MiddleClick 5
在当前鼠标的位置单击鼠标中键5次[LeftDoubleClick、LeftDoubleClickS、LeftDoubleClickH]
格式:LeftDoubleClick {次数}
解释:在鼠标当前位置模拟双击鼠标左键.
LeftDoubleClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用
LeftDoubleClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标
例子:
LeftDoubleClick 5
在当前鼠标的位置双击鼠标左键5次[LeftDown、LeftDownS、LeftDownH]
格式:LeftDown {次数}
解释:在鼠标当前位置模拟按下鼠标左键,{次数}在这个语句中虽然有效,但没有实际意义.
LeftDownS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用
LeftDownH: 硬件模拟方式,仅支持PS(圆口)的鼠标
例子:
LeftDown 1
在当前鼠标的位置按下鼠标左键[LeftUp、LeftUpS、LeftUpH]
格式:LeftUp {次数}
解释:在鼠标当前位置模拟松开鼠标左键,{次数}在这个语句中虽然有效,但没有实际意义.
LeftUpS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用
LeftUpH: 硬件模拟方式,仅支持PS(圆口)的鼠标
例子:
LeftUp 1
在当前鼠标的位置弹起鼠标左键[RightDown、RightDownS、RightDownH]
格式:RightDown {次数}
解释:在鼠标当前位置模拟按下鼠标右键,{次数}在这个语句中虽然有效,但没有实际意义.
RightDownS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用
RightDownH: 硬件模拟方式,仅支持PS(圆口)的鼠标
例子:
RightDown 1
在当前鼠标的位置按下鼠标右键[RightUp、RightUpS、RightUpH]
格式:RightUp {次数}
解释:在鼠标当前位置模拟松开鼠标右键,{次数}在这个语句中虽然有效,但没有实际意义
RightUpS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用
RightUpH: 硬件模拟方式,仅支持PS(圆口)的鼠标
例子:
RightUp 1
在当前鼠标的位置弹起鼠标右键[MoveTo、MoveToS、MoveToH]
格式:MoveTo {X坐标},{Y坐标}
解释:移动鼠标到(X坐标,Y坐标)处
MoveToS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用
MoveToH: 硬件模拟方式,仅支持PS(圆口)的鼠标
例子:
MoveTo 100,200
把鼠标移动到(100,200)这个点上
MoveTo intX,intY
把鼠标移动到(intX,intY)这个点上,需要5.50以上版本支持.[MoveR、MoveRS、MoveRH]
格式:MoveR {X距离},{Y距离}
解释:把鼠标相对移动(X距离,Y距离)
MoveRS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用
MoveRH: 硬件模拟方式,仅支持PS(圆口)的鼠标
例子:
当前鼠标在(100,100)点,使用下面语句
MoveR 200,300
之后,鼠标就被移到了(100+200,100+300)处,也就是坐标(300,400)处
提示:使用硬件模拟方式不能碰键盘鼠标,否则会导致[MouseWheel]
格式:MouseWheel {滚动量}
解释:滚动鼠标滚轮.如果滚动量为正,向上滚动;否则向下滚动.
仅支持Windows 2000以上的操作系统.
例子:
MouseWheel 1
把鼠标滚轮向上滚动1格[SaveMousePos][RestoreMousePos]
格式: SaveMousePos
解释: 保存当前鼠标位置
格式: RestoreMousePos
解释: 将鼠标移动到上一次保存的鼠标位置
例子: 保存/恢复鼠标位置常用于制作网络游戏练功脚本,脚本开始时保存鼠标位置,脚本结束时恢复鼠标位置,
这样脚本执行后鼠标的位置就不会变化[LockMouse]
格式: LockMouse
解释: 锁定鼠标位置,用户将不能通过移动鼠标而改变鼠标位置,而脚本仍可以改变鼠标位置
例子: 在脚本开始的时候使用这个命令,可以有效防止用户误触鼠标引起脚本执行出错[UnlockMouse]
格式: UnlockMouse
解释: 解除LockMouse命令对鼠标位置的锁定。如果用户使用了LockMouse命令而没有使用UnlockMouse命令,
按键精灵会在脚本结束时自动解除锁定[WaitKey]
格式:WaitKey {可选:变量名}(注意这里是“变量名”不是“表达式”)
解释:脚本运行到此句之后暂停,等待用户按键,用户按键之后,将按键结果保存到变量当中.
例子:
WaitKey x
脚本运行到这一行会暂停,当用户按下键盘后继续执行,并且把用户的按键码保存在变量x里[GetLastKey]
格式:GetLastKey {可选:变量名}(注意这里是“变量名”不是“表达式”)
解释:脚本运行到此句之后不暂停,将上次用户按键的结果保存到变量当中.
例子:
GetLastKey x[If]
格式:If {表达式}…ElseIf…Else…EndIf
解释:判断表达式抓点颜色并执行语句--通过判断表达式的取值,来执行后面的动作或控制[IfColor]
格式:IfColor {X坐标},{Y坐标},{颜色},{判断条件(0:等于 1:不等于 2:近似等于)}…ElseIf…Else…EndIf
解释:判断颜色并执行语句--通过判断屏幕x,y坐标的某点的颜色,是等于、不等于、还是近似某颜色,来执行后面的动作或控制
例子:
IfColor 860,27,e1b072,0
Else
EndIf
判断坐标点(860,27)的颜色是否等于e1b072[Else]
格式:If {表达式}…ElseIf…Else…EndIf
或 IfColor {X坐标} {Y坐标} {颜色} {判断条件(0:等于 1:不等于 2:近似等于)}…ElseIf…Else…EndIf
解释:和If或IfColor语句结合,进行高级语言的条件判断[ElseIf]
格式:If {表达式}…ElseIf…Else…EndIf
或 IfColor {X坐标} {Y坐标} {颜色} {判断条件}…ElseIf…Else…EndIf
解释:和If或IfColor语句结合,进行高级语言的条件判断[EndIf]
格式:If {表达式}…ElseIf…Else…EndIf
或 IfColor {X坐标} {Y坐标} {颜色} {判断条件}…ElseIf…Else…EndIf
解释:和If或IfColor语句结合,进行高级语言的条件判断[While]
格式:While {循环条件}...EndWhile
解释:循环语句--当循环条件成立的时候,反复执行循环体[EndWhile]
格式:While {循环条件}...EndWhile
解释:和While一起构成循环语句[For]
格式:For {循环次数}...EndFor
解释:循环语句--循环一定次数[EndFor]
格式:For {循环次数}...EndFor
解释:和For一起构成循环语句[Goto]
格式:Goto {标号}
解释:跳转语句,可以跳转到rem标记过的标记处继续执行其他命令介绍[Delay]
格式:Delay {延时}
解释:脚本暂停执行一段时间.{延时}里面填写”毫秒”数
1秒=1000毫秒, 1分钟=60000毫秒, 1小时=3600000毫秒
例子:
Delay 6000
延迟6秒
x = 5000
Delay x
延时x秒,这里x是5秒[MessageBox]
格式:MessageBox {文字}
解释:简单的弹出一个窗口,显示一段文字.
例子:
MessageBox "弹出窗口"
提醒: 按键VBS语句中也提供了MessageBox命令,可以支持变量,因此MessageBox命令也可以直接写成支持变量的方式
x = "提醒窗口"
MessageBox x[SayString]
格式:SayString {表达式}
解释:在当前窗口输入文字
例子:
SayString 你好啊
x = "我很好"
SayString x [Rem]
格式:Rem {文字}
解释:标记命令.即可当注释,也可以为Goto跳转指令作标记
例子:
Rem 脚本开始[TracePrint]
格式:TracePrint {变量}
解释:在调试窗口打印文字,可用于输出变量的值
例子:
TracePrint x
在调试窗口输出变量x的值[EndScript]
格式:EndScript
解释:强制结束脚本的执行,在这个语句之后的所有命令都不会执行[Import]
格式:Import {vbs文件}
或 Import {插件dll文件}
解释:导入一个vbs文件或者插件dll文件。当文件被导入后,里面的函数可以直接被调用,不需要使用VBSCall或Plugin命令
在VBScript块中需要调用vbs文件或者插件中的函数时,必须采用这种方式,不能再冠以VBSCall或Plugin关键字
例子:
Import "stdlib.vbs"
name=InputBox("请输入您的姓名")[VBSBegin ... VBSEnd]
格式:VBSBegin...VBSEnd
解释:构成一个VBScript块。在VBScript块中可以使用任何VBScript语句(包括VBScript的条件判断、子程序调用等等),也可以使用大多数的按键精灵命令。[VBS]
格式:VBS {VBScript语句}
解释:执行一个单行的VBScript语句。在6.0之后的版本VBS关键字可以省略。
注意只支持单行的VBScript语句,不支持多行的VBScript语句如If...EndIf,While...Wend等,需要用按键精灵的类似命令代替[VBSCall]
格式:VBSCall {外部VBScript函数}。
解释:执行一个外部VBScript函数。按键精灵内置了标准库stdlib.vbs,里面包含了包括颜色查找,图片查找等有用的功能[Plugin]
格式:Plugin {插件名}.{插件函数}
解释:调用一个外部插件提供的函数。我们将逐渐制作多种复杂功能的插件并随按键精灵最新版本提供。
例子:
Plugin parentH = Window.Foreground()
使用Windows插件获取当前窗口的句柄功能[UserVar]
用于支持用户设置脚本参数
标准型自定义变量
格式: UserVar {变量}={默认值} {注释}
解释:这个命令主要用于用户自定义的设置功能
例子:
UserVar var1=30 当HP<多少%时,使用红药
UserVar var2=30 当MP<多少%时,使用蓝药
当用户使用这个脚本的时候,可以对这var1和var2这两个变量的取值进行设置
下拉型自定义变量
格式: UserVar 变量=DropList{选项0:值0|选项1:值1|选项2:值2}=默认显示的选项编号 {注释}
解释:这个命令预先设定多个变量值,用户可在基面通过下拉方式进行选择
例子:
UserVar Var1=DropList{低于10%时补血:0.1|低于20%时补血:0.2|低于30%时补血:0.3}=2 自动补血设置
特别提醒:默认显示的选项编号从0开始[PutAttachment]
格式:PutAttachment <路径:可选> <要释放的文件:可选>
解释:把当前脚本包含的附件展开到指定的路径下。<路径>是指定的相对路径或者绝对路径。
如果省略<路径>或者<路径>为 . ,则默认展开到按键精灵所在的文件夹中
可以指定要释放的文件,允许使用通配符,如 *.bmp。如果不指定要释放的文件,则默认释放所有文件
例子:
PutAttachment c:\ *.bmp
将附件中所有后缀是bmp的文件释放到c盘
PutAttachment .\plugin *.dll
将附件中所有后缀是dll的文件释放到当前文件夹的plugin目录下[//]
注释命令,如果一行语句的开头是//,那么这一行语句将被看作是一句注释.
5.50之后的版本支持按键精灵VBS命令介绍[VBSCall FindCenterColor]
解释: 这个功能允许您在屏幕的某个区域从中心开始查找指定的颜色,并把找到的坐标保存在变量中
格式:
VBSCall FindCenterColor(left,top,right,bottom,c,x,y)
在区域内从中心到外围找颜色为c的点,把坐标保存在变量x和y中
left,top,right,bottom都是整数或者整数型变量,说明了区域的左,上,右,下界限
颜色是类似于"0000FF"的字符串,如果不取变量,别忘了加双引号
如果没有找到这个颜色,则x和y的值都被置为-1
例子
VBSCall FindCenterColor(0,0,800,600,"0000FF",x,y)
If x>=0 and y>=0
MoveTo x y
EndIf 在区域(0,0,800,600)中找红色("0000FF")的点,如果找到,则把鼠标移动到这个点[VBSCall FindColor]
解释: 这个功能允许您在屏幕的某个区域从左到右、从上到下的查找指定的颜色,并把找到的坐标保存在变量中
格式:
VBSCall FindColor(left,top,right,bottom,c,x,y)
在区域内从左到右,从上到下找颜色为c的点,把坐标保存在变量x和y中
left,top,right,bottom都是整数或者整数型变量,说明了区域的左,上,右,下界限
颜色是类似于"0000FF"的字符串,如果不取变量,别忘了加双引号
如果没有找到这个颜色,则x和y的值都被置为-1
例子
VBSCall FindColor(0,0,800,600,"0000FF",x,y)
If x>=0 and y>=0
MoveTo x y
EndIf 在区域(0,0,800,600)中找红色("0000FF")的点,如果找到,则把鼠标移动到这个点[VBSCall FindColorEx]
解释: 这个功能允许您在屏幕的某个区域模糊查找指定的颜色,并把找到的坐标保存在变量中
格式:
VBSCall FindColorEx(left,top,right,bottom,c,type,similar,x,y)
在区域内找颜色为c的点,把坐标保存在变量x和y中
left,top,right,bottom都是整数或者整数型变量,说明了区域的左,上,右,下界限
颜色是类似于"0000FF"的字符串,如果不取变量,别忘了加双引号
type表示查找方式。0为从上往下,从左往右找;1为从中心往外围找
similar为相似度,取0.3到1之间的小数。数值越大,对相似度要求越严格。推荐取0.8
如果没有找到这个颜色,则x和y的值都被置为-1
例子
VBSCall FindColorEx(0,0,800,600,"0000FF",1,0.8,x,y)
If x>=0 and y>=0
MoveTo x y
EndIf 在区域(0,0,800,600)中,从中间开始找接近红色("0000FF")的点,如果找到,则把鼠标移动到这个点[VBSCall FindPic]
解释: 这个功能允许您在屏幕的某个区域查找指定相似度的图片,并把找到的坐标保存在变量中
格式
VBSCall FindPic(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
推荐使用周围颜色单一的图片
例子
VBSCall FindPic(0,0,.bmp",0.9,x,y)
If x>=0 and y>=0
MoveTo x y
EndIf 在区域(0,0,)中找与文件1.bmp中的图形比较接近的地方,如果找到,则把鼠标移动到这个地方
6.30版之后,找图的文件路径可以直接引用附件中的图片,不需要释放,例子
VBSCall FindPic(0,0,,"Attachment:\1.bmp",0.9,x,y)[VBSCall GetCursorPos]
解释: 这个功能允许您得到当前鼠标所在的位置,并保存在变量中
格式:
VBSCall GetCursorPos(x,y)
x和y都是整数型变量,分别表示当前鼠标的x和y坐标
您可以随便取变量名,不一定是x和y
例子:
VBSCall GetCursorPos(mx,my) 把当前鼠标位置的x和y坐标放在变量mx和my中[VBSCall GetPixelColor]
解释: 这个功能允许您得到指定位置的点的颜色,并保存在变量中
格式:
color=GetPixelColor(x,y)
把坐标为(x,y)的点的颜色保存在字符串变量color中
x和y是整数或者整数型变量
例子:
VBSCall GetCursorPos(x,y)
color=GetPixelColor(x,y)
VBSCall MessageBox(color) 得到当前点的颜色,并弹出对话框显示出来[VBSCall InputBox]
解释: 这个功能可以弹出一个“输入”对话框,让脚本用户输入一些文字
格式:
x=InputBox(提示用户的话,比如“请输入用户名”)
把用户的输入内容保存在变量x中
如果提示用户的话不是变量,别忘了加双引号
例子:
x=InputBox("请输入用户名")
MessageBox(x) 让用户输入用户名,并显示出来[VBSCall MessageBox]
解释: 这个功能允许您在脚本中弹出一个对话框,对话框的文字允许是变量
格式:
VBSCall MessageBox(对话框中的文字)
如果对话框中的文字不是变量,别忘了加双引号
例子:
VBSCall MessageBox(CStr(i)) 把变量i的内容转换成字符串并显示出来[VBSCall ReadMemory]
解释: 这个功能允许您得到当前活动程序的指定内存地址的值,并保存在变量中
格式:
VBSCall ReadMemory(十六进制整数表示的内存地址,读取类型,value)
内存地址是类似于&H400000的十六进制整数,可以用游戏修改工具找到,别忘了在前面加&H表示十六进制
“读取类型”可以是0,1或者2,分别表示读取一个字节,一个整数或一个长整数
读取到的值存放在长整数型变量value中
例子:
VBSCall ReadMemory(&h,val)
MessageBox(CStr(val)) 从内存地址400000中读取一个长整数,并显示出来[VBSCall RunApp]
解释: 利用这个功能,您可以很方便的启动一个本地的程序,或者打开一个文件
格式:
VBSCall RunApp(要运行的程序或者文件)
如果程序路径不是变量,别忘了加双引号
例子:
VBSCall RunApp("notepad.exe") 启动Windows记事本程序[VBSCall GetCursorShape]
解释: 这个函数得到当前鼠标的形状特征(用一个整数表示,对这个整数进行比较,相当于对鼠标形状进行比较)
格式:
shape=GetCursorShape(保留值,目前请用0)
例子:
VBSCall shape=GetCursorShape(0)
If shape=old_shape
VBSCall MessageBox(shape)
EndIf
得到当前鼠标的形状,并和以前获得的鼠标形状old_shape进行比较[VBSCall Delay]
VBSCall Delay(iMilliSecond)
解释: 这个函数可以延时,单位是毫秒,支持表达式
提示: 按键精灵自带的Delay命令已经支持表达式,因此不推荐使用VBSCall Delay命令,此命令保留仅为了兼容以前的脚本.[VBSCall SayString]
解释: 这个函数用来输入文本,支持变量.
格式: VBSCall SayString(Prompt)
提示: 按键精灵自带的SayString命令已经支持表达式,因此不推荐使用VBSCall SayString命令,此命令保留仅为了兼容以前的脚本.[VBSCall SetCursorPos]
解释: 设置鼠标当前的位置
格式: VBSCall SetCursorPos(CursorX,CursorY)
提示: 按键精灵自带的MoveTo命令已经支持变量,因此不推荐使用VBSCall SetCursorPos命令,此命令保留仅为了兼容以前的脚本.[VBSCall GetScreenResolution]
解释: 这个功能允许您得到当前屏幕分辨率,并保存在变量中
格式:
VBSCall GetScreenResolution(cx,cy)
cx和cy都是整数型变量,分别表示当前分辨率的宽和高
例子:
VBSCall GetScreenResolution(cx,cy) 把当前屏幕分辨率的宽和高分别放在变量cx和cy中
提示: 您也可以使用Windows插件中的获取屏幕分辨率的功能.比较懒,没弄得很花哨,当初我就是靠这个开始弄按键精灵脚本的。基本命令和语法都有了,下来就是逻辑了,你可以按照你的战斗方式去做脚本,做聪明的脚本,不是录制的脚本。可以自己领悟,也可以等我下次发帖~~~ [
|