2024年2月8日发(作者:)
按键精灵经典教程
一、 键盘命令(2~5页)
二、鼠标命令(5~13页)
三、控制命令(13~22页)
四、颜色/图像命令(22~28页)
五、其他命令(28~355页)
五、网游脚本实例(35~最后)
一、 键盘命令
命令名称:
命令功能:
命令参数:
返 回 值:
脚本例子:
(8.x语法)
GetLastKey 检测上次按键
检测上次按键
参数1 整数型,可选:变量名
无
复制代码
1. //脚本运行到这一行不会暂停,调用的时候立即返回,得到调用之前最后一次按下的按键码保存在变量Key里。
2. Key=GetLastKey()
3. If Key = 13 Then
4. Msgbox "你上次按下了回车键"
5. End If
脚本例子:
(7.x语法)
复制代码
1. //脚本运行到这一行不会暂停,调用的时候立即返回,得到调用之前最后一次按下的按键码保存在变量Key里。
2. GetLastKey Key
3. If Key = 13
4. Msgbox "你上次按下了回车键"
5. EndIf
命令名称:
命令功能:
命令参数:
KeyDown 按住
键盘按住
参数1 整数型,键盘虚拟码(8.X支持 按键字符)
参数2 整数型,次数
返 回 值:
脚本例子:
(8.x语法)
无
复制代码
1. //KeyDown、KeyDownS、KeyDownH
2. //KeyDownS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的键盘都可以使用
3. //KeyDownH: 硬件模拟方式,仅支持PS(圆口)的键盘 点击查看使用硬件模
拟方式的注意事项
4. KeyDown 65,1
5. //65是A键的按键码,上面的语句表示按住A键1次
6.
7. KeyDown "A",1
8. //上面的支持按键字符,语句表示按住A键1次
脚本例子:
(7.x语法)
复制代码
1. //KeyDown、KeyDownS、KeyDownH
2. //KeyDownS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的键盘都可以使用
3. //KeyDownH: 硬件模拟方式,仅支持PS(圆口)的键盘 点击查看使用硬件模拟方式的注意事项
4. KeyDown 65,1
5. //65是A键的按键码,上面的语句表示按住A键1次
命令名称:
命令功能:
命令参数:
KeyPress 按键
键盘按键
参数1 整数型,键盘虚拟码(8.X支持 按键字符)
参数2 整数型,次数
返 回 值:
脚本例子:
(8.x语法)
无
复制代码
1. //KeyPress、KeyPressS、KeyPressH
2. //KeyPressS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的键盘都可以使用
3. //KeyPressH: 硬件模拟方式,仅支持PS(圆口)的键盘 点击查看使用硬件模拟方式的注意事项
4. KeyPress 65,1
5. //65是A键的按键码,上面的语句表示按A键1次
6.
7. KeyPress "A",1
8. //上面的支持按键字符,语句表示按A键1次
脚本例子:
(7.x语法)
复制代码
1. //KeyPress、KeyPressS、KeyPressH
2. //KeyPressS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的键盘都可以使用
3. //KeyPressH: 硬件模拟方式,仅支持PS(圆口)的键盘 点击查看使用硬件
模拟方式的注意事项
4. KeyPress 65,1
5. //65是A键的按键码,上面的语句表示按A键1次
命令名称:
命令功能:
命令参数:
KeyUp 弹起
键盘弹起
参数1 整数型,键盘虚拟码(8.X支持 按键字符)
参数2 整数型,次数
返 回 值:
脚本例子:
(8.x语法)
无
复制代码
1. //KeyUp、KeyUpS、KeyUpH
2. //KeyUpS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的键盘都可以使用
3. //KeyUpH: 硬件模拟方式,仅支持PS(圆口)的键盘 点击查看使用硬件模拟方式的注意事项
4. KeyUp 65,1
5. //65是A键的按键码,上面的语句表示松开A键1次
6.
7. KeyUp "A",1
8. //上面的支持按键字符,语句表示松开A键1次
脚本例子:
(7.x语法)
复制代码
1. //KeyUp、KeyUpS、KeyUpH
2. //KeyUpS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的键盘都可以使用
3. //KeyUpH: 硬件模拟方式,仅支持PS(圆口)的键盘 点击查看使用硬件模拟方式的注意事项
4. KeyUp 65,1
5. //65是A键的按键码,上面的语句表示松开A键1次
命令名称:
命令功能:
命令参数:
返 回 值:
WaitKey 等待按任意键
等待按任意键
参数1 整数型,可选:变量名
无
脚本例子:
(8.x语法)
复制代码
1. Key=WaitKey()
2. //脚本运行到这一行会暂停,当用户按下键盘后继续执行,并且把用户的按键码保存在变量Key里
3. If Key = 13 Then
4. MessageBox "恭喜你按下了回车键"
5. End If
脚本例子:
(7.x语法)
复制代码
1. WaitKey Key
2. //脚本运行到这一行会暂停,当用户按下键盘后继续执行,并且把用户的按键码保存在变量Key里
3. If Key = 13
4. Msgbox "恭喜你按下了回车键"
5. EndIf
二、鼠标命令
命令名称:
命令功能:
命令参数:
GetCursorPos 得到鼠标位置坐标
得到当前鼠标所在的位置坐标
参数1 整数型,返回x坐标
参数2 整数型,返回y坐标
返 回 值:
脚本例子:
(8.x语法)
无
复制代码
1. GetCursorPos mx,my
2. //把当前鼠标位置的x和y坐标放在变量mx和my中
脚本例子:
(7.x语法)
复制代码
1. VBSCall GetCursorPos(mx,my)
2. //把当前鼠标位置的x和y坐标放在变量mx和my中
命令名称:
命令功能:
命令参数:
返 回 值:
脚本例子:
(8.x语法)
GetCursorShape 得到鼠标形状
得到当前鼠标的形状特征
参数1 整数型,参数
整数型,鼠标的形状值
复制代码
1. //参数: 0 是6.83之前的版本默认的参数
2. //参数: 1 可用于一些在参数0下无法区分鼠标形状代码的情况
3. //下面是我们普通的WINDOWS鼠标形状特征
4. //不同电脑上鼠标形状特征也许不同,请使用"抓点抓色"功能抓取正确的鼠标形状特征
5. Shape1 = 1593350287
6. //下面是我们访问网页超链接时候的手型鼠标形状
7. Shape2 = 1055991329
8. shape=GetCursorShape(0)
9. If shape = shape1 Then
10. MessageBox "当前鼠标形状是普通的WINDOWS鼠标"
11. ElseIf shape = shape2 Then
12. MessageBox "当前鼠标形状是手型鼠标"
13. Else
14. MessageBox "不认识当前鼠标形状!"
15. End If
脚本例子:
(7.x语法)
复制代码
1. //参数: 0 是6.83之前的版本默认的参数
2. //参数: 1 可用于一些在参数0下无法区分鼠标形状代码的情况
3. //下面是我们普通的WINDOWS鼠标形状特征
4. //不同电脑上鼠标形状特征也许不同,请使用"抓点抓色"功能抓取正确的鼠标形状特征
5. Shape1 = 1593350287
6. //下面是我们访问网页超链接时候的手型鼠标形状
7. Shape2 = 1055991329
8. VBSCall Shape=GetCursorShape(0)
9. If shape = shape1
10. MessageBox 当前鼠标形状是普通的WINDOWS鼠标
11. ElseIf shape = shape2
12. MessageBox 当前鼠标形状是手型鼠标
13. Else
14. MessageBox 不认识当前鼠标形状!
15. EndIf
命令名称:
命令功能:
命令参数:
返 回 值:
脚本例子:
(8.x语法)
GetLastClick 检测上次按过的鼠标键
检测上一次按下的鼠标代码
参数1 整数型,可选:变量名
无
复制代码
1. Mouse=GetLastClick()
2. If Mouse =32770 Or Mouse =32769 Then
3. Msgbox "你按下了鼠标左键"
4. End If
脚本例子:
(7.x语法)
复制代码
1. GetLastClick Mouse
2. If Mouse =32770 Or Mouse =32769
3. Msgbox "你按下了鼠标左键"
4. EndIf
命令名称:
命令功能:
命令参数:
返 回 值:
脚本例子:
(8.x语法)
LeftClick 左键单击
模拟点击鼠标左键
参数1 整数型,次数
无
复制代码
1. //LeftClick、LeftClickS、LeftClickH
2. //LeftClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用
3. //LeftClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标 点击查看使用硬件模拟方式的注意事项
4. LeftClick 5
5. //在当前鼠标的位置单击鼠标左键5次
脚本例子:
(7.x语法)
复制代码
1. //LeftClick、LeftClickS、LeftClickH
2. //LeftClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用
3. //LeftClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标 点击查看使用硬件模拟方式的注意事项
4. LeftClick 5
5. //在当前鼠标的位置单击鼠标左键5次
命令名称:
命令功能:
命令参数:
返 回 值:
脚本例子:
(8.x语法)
LeftDoubleClick 左键双击
模拟双击鼠标左键
参数1 整数型,次数
无
复制代码
1. //LeftDoubleClick、LeftDoubleClickS、LeftDoubleClickH]
2. //LeftDoubleClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用
3. //LeftDoubleClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标 点击查看使用硬件模拟方式的注意事项
4. LeftDoubleClick 5
5. //在当前鼠标的位置双击鼠标左键5次
脚本例子:
(7.x语法)
复制代码
1. //LeftDoubleClick、LeftDoubleClickS、LeftDoubleClickH]
2. //LeftDoubleClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用
3. //LeftDoubleClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标 点击查看使用硬件模拟方式的注意事项
4. LeftDoubleClick 5
5. //在当前鼠标的位置双击鼠标左键5次
命令名称:
命令功能:
命令参数:
返 回 值:
脚本例子:
LockMouse 锁定鼠标位置
锁定鼠标位置,用户将不能通过移动鼠标而改变鼠标位置,而脚本仍可以改变鼠标位置
无
无
复制代码
(8.x语法)
1. //在脚本开始的时候使用这个命令,可以有效防止用户误触鼠标引起脚本执行出错
2. LockMouse
3. Do
4. Delay 1000
5. Loop
脚本例子:
(7.x语法)
复制代码
1. //在脚本开始的时候使用这个命令,可以有效防止用户误触鼠标引起脚本执行出错
2. LockMouse
3. While True
4. Delay 1000
5. EndWhile
命令名称:
命令功能:
命令参数:
返 回 值:
脚本例子:
(8.x语法)
MiddleClick 中键单击
模拟点击鼠标中键
参数1 整数型,次数
无
复制代码
1. //MiddleClick、MiddleClickS、MiddleClickH
2. //MiddleClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用
3. //MiddleClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标 点击查看使用硬件模拟方式的注意事项
4. MiddleClick 5
5. //在当前鼠标的位置单击鼠标中键5次
脚本例子:
(7.x语法)
复制代码
1. //MiddleClick、MiddleClickS、MiddleClickH
2. //MiddleClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用
3. //MiddleClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标 点击查看使用硬件模拟方式的注意事项
4. MiddleClick 5
5. //在当前鼠标的位置单击鼠标中键5次
命令名称:
MouseWheel 鼠标滚轮
命令功能:
命令参数:
返 回 值:
脚本例子:
(8.x语法)
滚动鼠标滚轮
参数1 整数型,滚动量
无
复制代码
1. //如果滚动量为正,向上滚动;否则向下滚动.
2. //仅支持Windows 2000以上的操作系统.
3. MouseWheel 1
4. //把鼠标滚轮向上滚动1格
脚本例子:
(7.x语法)
复制代码
1. //如果滚动量为正,向上滚动;否则向下滚动.
2. //仅支持Windows 2000以上的操作系统.
3. MouseWheel 1
4. //把鼠标滚轮向上滚动1格
命令名称:
命令功能:
命令参数:
MoveR 鼠标相对移动
鼠标相对移动到
参数1 整数型,X距离
参数2 整数型,Y距离
返 回 值:
脚本例子:
(8.x语法)
无
复制代码
1. //MoveR、MoveRS、MoveRH
2. //MoveRS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用
3. //MoveRH: 硬件模拟方式,仅支持PS(圆口)的鼠标 点击查看使用硬件模拟方式的注意事项
4. //当前鼠标在(100,100)点,使用下面语句
5. MoveR 200,300
6. //之后,鼠标就被移到了(100+200,100+300)处,也就是坐标(300,400)处
7. //提示:使用硬件模拟方式不能碰键盘鼠标,否则会导致出错
脚本例子:
(7.x语法)
复制代码
1. //MoveR、MoveRS、MoveRH
2. //MoveRS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用
3. //MoveRH: 硬件模拟方式,仅支持PS(圆口)的鼠标 点击查看使用硬件模拟方式的注意事项
4. //当前鼠标在(100,100)点,使用下面语句
5. MoveR 200,300
6. //之后,鼠标就被移到了(100+200,100+300)处,也就是坐标(300,400)处
7. //提示:使用硬件模拟方式不能碰键盘鼠标,否则会导致出错
命令名称:
命令功能:
命令参数:
MoveTo 鼠标移动
移动鼠标到
参数1 整数型,X坐标
参数2 整数型,Y坐标
返 回 值:
脚本例子:
(8.x语法)
无
复制代码
1. //MoveTo、MoveToS、MoveToH
2. //MoveToS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用
3. //MoveToH: 硬件模拟方式,仅支持PS(圆口)的鼠标
4. MoveTo 100,200
5. //把鼠标移动到(100,200)这个点上
6. intX=50
7. intY=150
8. MoveTo intX,intY
9. //把鼠标移动到(intX,intY)这个点上,需要5.50以上版本支持.
脚本例子:
(7.x语法)
复制代码
1. //MoveTo、MoveToS、MoveToH
2. //MoveToS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用
3. //MoveToH: 硬件模拟方式,仅支持PS(圆口)的鼠标
4. MoveTo 100,200
5. //把鼠标移动到(100,200)这个点上
6. intX=50
7. intY=150
8. MoveTo intX,intY
9. //把鼠标移动到(intX,intY)这个点上,需要5.50以上版本支持.
命令名称:
命令功能:
命令参数:
返 回 值:
脚本例子:
(8.x语法)
RestoreMousePos 恢复上次保存的鼠标位置
保存当前鼠标位置
无
无
复制代码
1. SaveMousePos
2. //保存当前鼠标位置
3. Delay 100
4. MoveTo 500,20
5. Delay 100
6. RestoreMousePos
7. //将鼠标移动到上一次保存的鼠标位置
8. //保存/恢复鼠标位置常用于制作网络游戏练功脚本,脚本开始时保存鼠标位置,脚本结束时恢复鼠标位置,
9. //这样脚本执行后鼠标的位置就不会变化
脚本例子:
(7.x语法)
复制代码
1. SaveMousePos
2. //保存当前鼠标位置
3. Delay 100
4. MoveTo 500,20
5. Delay 100
6. RestoreMousePos
7. //将鼠标移动到上一次保存的鼠标位置
8. //保存/恢复鼠标位置常用于制作网络游戏练功脚本,脚本开始时保存鼠标位置,脚本结束时恢复鼠标位置,
9. 这样脚本执行后鼠标的位置就不会变化
命令名称:
命令功能:
命令参数:
返 回 值:
脚本例子:
(8.x语法)
RightClick 右键单击
模拟点击鼠标右键
参数1 整数型,次数
无
复制代码
1. //RightClick、RightClickS、RightClickH
2. //RightClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用
3. //RightClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标 点击查看使用硬件模拟方式的注意事项
4. RightClick 5
5. //在当前鼠标的位置单击鼠标右键5次
脚本例子:
(7.x语法)
复制代码
1. //RightClick、RightClickS、RightClickH
2. //RightClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用
3. //RightClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标 点击查看使用硬件模拟方式的注意事项
4. RightClick 5
5. //在当前鼠标的位置单击鼠标右键5次
命令名称:
命令功能:
命令参数:
返 回 值:
脚本例子:
(8.x语法)
SaveMousePos 保存当前鼠标所在位置
保存当前鼠标位置
无
无
复制代码
1. SaveMousePos
2. //保存当前鼠标位置
3. Delay 100
4. MoveTo 500,20
5. Delay 100
6. RestoreMousePos
7. //将鼠标移动到上一次保存的鼠标位置
8. //保存/恢复鼠标位置常用于制作网络游戏练功脚本,脚本开始时保存鼠标位置,脚本结束时恢复鼠标位置,
9. //这样脚本执行后鼠标的位置就不会变化
脚本例子:
(7.x语法)
复制代码
1. SaveMousePos
2. //保存当前鼠标位置
3. Delay 100
4. MoveTo 500,20
5. Delay 100
6. RestoreMousePos
7. //将鼠标移动到上一次保存的鼠标位置
8. //保存/恢复鼠标位置常用于制作网络游戏练功脚本,脚本开始时保存鼠标位置,脚本结束时恢复鼠标位置,
9. 这样脚本执行后鼠标的位置就不会变化
命令名称:
命令功能:
命令参数:
返 回 值:
脚本例子:
(8.x语法)
脚本例子:
(7.x语法)
UnlockMouse 解除锁定鼠标位置
解除LockMouse命令对鼠标位置的锁定
无
无
复制代码
1.
复制代码
1. //如果用户使用了LockMouse命令而没有使用UnlockMouse命令,按键精灵会在脚本结束时自动解除锁定
2. UnlockMouse
命令名称:
命令功能:
命令参数:
返 回 值:
脚本例子:
(8.x语法)
WaitClick 按任意鼠标键继续
脚本执行到这一句暂停,按下任意鼠标键之后继续
参数1 整数型,可选:变量名
无
复制代码
1. last_click=WaitClick()
2. MessageBox "您按下了" & last_click
脚本例子:
(7.x语法)
复制代码
1. WaitClick last_click
2. MessageBox "您按下了" & last_click
三、控制命令
命令名称:
Call 调用过程
命令功能:
命令参数:
返 回 值:
脚本例子:
(8.x语法)
调用过程
参数1 字符串型,过程名
无
复制代码
1. Call 子程序("我是子程序,被你调用了")
2. EndScript
3. //支持中文名变量
4. Sub 子程序(啊)
5. Msgbox 啊
6. End Sub
7. //定义一个过程,可以在脚本中调用这个过程
脚本例子:
复制代码
(7.x语法)
命令名称:
命令功能:
命令参数:
返 回 值:
脚本例子:
(8.x语法)
Do 循环
条件循环
参数1 条件型,循环条件
无
复制代码
1. 例子1:
2. //支持Exit Do 命令退出循环
3. i=0
4. Do While i=0
5. Msgbox "我停不下来啦!!快住手"
6. Loop
7. //当循环条件成立的时候,反复执行循环体
8.
9.
10. 例子2:
11. i=0
12. Do Until i=0
13. Msgbox "为什么没有循环到我呢?"
14. Loop
15. Msgbox "循环结束"
16. //当循环条件成立的时候,离开循环体
17.
18.
19. 例子3:
20. i=0
21. Do Until i=1
22. Msgbox "我停不下来啦!!快住手"
23. Loop
24. //当循环条件不成立的时候,反复执行循环体
25.
26.
27. 例子4:
28. n=0
29. Do While true
30. Msgbox "我将循环10次停下来!!"
31. If n>=10 Then
32. //当循环条件成立的时候,离开循环体
33. Exit do
34. End if
35. n=n+1
36. Loop
37. Msgbox n & "次"
38.
39.
40. 例子5:
41. i = 0
42. Do
43. MessageBox "ok"
44. Loop While i <> 0
45. //条件放后面,前面的循环内容可以执行一次!
脚本例子:
(7.x语法)
复制代码
1. 无
命令名称:
命令功能:
命令参数:
返 回 值:
脚本例子:
(8.x语法)
For 循环
循环一定次数
参数1 整数型,循环次数
无
复制代码
1. 例子1:
2. //支持Exit For 命令退出循环
3. For i=0 To 9
4. Delay 100
5. Next
6. //循环10次
7.
8. 例子2:
9. //支持Exit For 命令退出循环
10. For 10
11. Delay 100
12. Next
13. //循环10次
14.
15.
16. 例子3:
17. //支持Exit For 命令退出循环
18. For i=0 to 19 step 2
19. Delay 100
20. Next
21. //循环10次
22.
23. 例子4:
24. //支持Exit For 命令退出循环
25. For i=0 to 19 step 2
26. Delay 100
27. If i>9 Then
28. Exit For
29. End If
30. Next
31. //循环5次
脚本例子:
(7.x语法)
复制代码
1. For 10
2. Delay 100
3. EndFor
4. //循环10次
命令名称:
命令功能:
命令参数:
返 回 值:
Function 函数
函数
多类型,多参数
多类型
脚本例子:
(8.x语法)
复制代码
1. //支持Exit Function 命令退出函数过程
2. Msgbox 函数过程("我是函数,被你调用了")
3. EndScript
4. Function 函数过程(a)
5. 函数过程=a
6. End Function
7. //定义一个函数过程,可以在脚本中调用这个函数
脚本例子:
(7.x语法)
复制代码
1. 无
命令名称:
命令功能:
命令参数:
返 回 值:
脚本例子:
(8.x语法)
Gosub 调用子程序
调用过程
参数1 字符串型,过程名
无
复制代码
1. //可带参数传递
2. Call 子程序("我是子程序,被你调用了")
3. EndScript
4. Sub 子程序(a)
5. Msgbox a
6. End Sub
7. //定义一个过程,可以在脚本中调用这个过程
脚本例子:
(7.x语法)
复制代码
1. Gosub 子程序
2. EndScript
3. Sub 子程序
4. Msgbox "我是子程序,被你调用了"
5. Return 子程序
6. //定义一个过程,可以在脚本中调用这个过程
命令名称:
命令功能:
Goto 跳转到标记
跳转到Rem标记处
命令参数:
返 回 值:
脚本例子:
(8.x语法)
参数1 字符串型,标号
无
复制代码
1. Goto 标记
2. Delay 100
3. Rem 标记
4. Msgbox "你直接跳到这里了!!,上面的延迟没有被执行!!"
5. //跳转语句,可以跳转到rem标记过的标记处继续执行
脚本例子:
(7.x语法)
复制代码
1. Goto 标记
2. Delay 100
3. Rem 标记
4. Msgbox "你直接跳到这里了!!,上面的延迟没有被执行!!"
5. //跳转语句,可以跳转到rem标记过的标记处继续执行
命令名称:
命令功能:
命令参数:
返 回 值:
脚本例子:
(8.x语法)
If 如果..则
判断表达式
参数1 条件型,表达式
无
复制代码
1. 例子1:
2. i=0
3. If i=0 Then
4. Msgbox "条件判断符合被通过!!"
5. End If
6. //通过判断表达式的取值,来执行后面的动作或控制
7.
8. 例子2:
9. i=1
10. If i=0 Then
11. Msgbox "条件判断符合被通过!!"
12. ElseIf i=1 Then
13. Msgbox "否则条件判断符合被通过!!"
14. Else
15. Msgbox "否则!!"
16. End If
17. //通过判断表达式的取值,来执行后面的动作或控制
脚本例子:
(7.x语法)
复制代码
1. i=0
2. If i=0
3. Msgbox "条件判断符合被通过!!"
4. EndIf
5. //通过判断表达式的取值,来执行后面的动作或控
命令名称:
命令功能:
命令参数:
IfColor 颜色判断
判断屏幕某点的颜色
参数1 整数型,屏幕X坐标
参数2 整数型,屏幕Y坐标
参数3 字符串型,颜色16进制值
参数4 整数型,判断条件
返 回 值:
脚本例子:
(8.x语法)
无
复制代码
1. 例子1:
2. //判断条件(0:等于 1:不等于 2:近似等于)
3. IfColor 860,27,"e1b072",0 Then
4. Msgbox "颜色等于"
5. Else
6. Msgbox "颜色不等于"
7. End If
8. //判断坐标点(860,27)的颜色是否等于e1b072
9.
10.
11. 例子2:
12. a=1:b=1
13. IfColor 650,118,"78F0E8",2 Then
14. MessageBox "a"
15. ElseIf b=a Then
16. MessageBox "b"
17. End if
脚本例子:
(7.x语法)
复制代码
1. //判断条件(0:等于 1:不等于 2:近似等于)
2. IfColor 860,27,e1b072,0
3. Msgbox "颜色等于"
4. Else
5. Msgbox "颜色不等于"
6. EndIf
7. //判断坐标点(860,27)的颜色是否等于e1b072
命令名称:
命令功能:
命令参数:
返 回 值:
脚本例子:
(8.x语法)
Rem 标记/注释
标记命令可当注释
参数1 字符串型,文字
无
复制代码
1. //不支持数字开头的和符号作为标记名
2. //标记命令.即可当注释,也可以为Goto跳转指令作标记
3. Rem 脚本开始
脚本例子:
(7.x语法)
复制代码
1. //标记命令.即可当注释,也可以为Goto跳转指令作标记
2. Rem 脚本开始
命令名称:
命令功能:
命令参数:
返 回 值:
脚本例子:
(8.x语法)
RestartScript 重新启动脚本运行
重新启动脚本运行
无
无
复制代码
1. For i=0 to 2
2. Delay 1000
3. Call rTXT(0, 0, 1024, 768, "屏幕内容填写" & i, "0000FF")
4. Next
5. RestartScript //重新启动脚本运行
脚本例子:
(7.x语法)
复制代码
1. 无
命令名称:
命令功能:
命令参数:
返 回 值:
脚本例子:
(8.x语法)
Select 情况条件选择
根据情况选择条件判断
参数1 条件型,情况
无
复制代码
1. //不支持判断语句 如:Case a>0
2. UserVar 变量=0 "输入(0~9)数字"
3. //<>---------------------------------------------以下是选择条件结结构判断
4. Select Case 变量
5. Case 0
6. Msgbox "你输入的数字为:0"
7. Case 1
8. Msgbox "你输入的数字为:1"
9. Case 2
10. Msgbox "你输入的数字为:2"
11. Case 3
12. Msgbox "你输入的数字为:3"
13. Case 4
14. Msgbox "你输入的数字为:4"
15. Case 5
16. Msgbox "你输入的数字为:5"
17. Case 6
18. Msgbox "你输入的数字为:6"
19. Case 7
20. Msgbox "你输入的数字为:7"
21. Case 8
22. Msgbox "你输入的数字为:8"
23. Case 9
24. Msgbox "你输入的数字为:9"
25. Case Else
26. Msgbox "你输入的数字不正确,请输入(0~9)数字!"
27. End Select
脚本例子:
(7.x语法)
复制代码
1. 无
命令名称:
Sub 子程序
命令功能:
命令参数:
返 回 值:
脚本例子:
(8.x语法)
定义一个过程
参数1 字符串型,过程名
无
复制代码
1. //支持Exit Sub 命令退出子程序过程
2. Call 子程序()
3. EndScript
4. Sub 子程序()
5. Msgbox "我是子程序,被你调用了"
6. End Sub
7. //定义一个过程,可以在脚本中调用这个过程
脚本例子:
(7.x语法)
复制代码
1. Gosub 子程序
2. EndScript
3. Sub 子程序
4. Msgbox "我是子程序,被你调用了"
5. Return 子程序
6. //定义一个过程,可以在脚本中调用这个过程
命令名称:
命令功能:
命令参数:
返 回 值:
脚本例子:
(8.x语法)
While 如果..则循环
条件循环
参数1 条件型,循环条件
无
复制代码
1. i=0
2. While i=0
3. Msgbox "我停不下来啦!!快住手"
4. Wend
5. //当循环条件成立的时候,反复执行循环体
脚本例子:
(7.x语法)
复制代码
1. i=0
2. While i=0
3. Msgbox "我停不下来啦!!快住手"
4. EndWhile
5. //当循环条件成立的时候,反复执行循环体
四、颜色/图像命令
命令名称:
命令功能:
命令参数:
FindCenterColor 中心找色
在屏幕区域从中心开始查找指定的颜色
参数1 整数型,屏幕左上角x坐标
参数2 整数型,屏幕左上角y坐标
参数3 整数型,屏幕右下角x坐标
参数4 整数型,屏幕右下角y坐标
参数5 字符串型,16进制颜色值
参数6 整数型,返回x坐标
参数7 整数型,返回y坐标
返 回 值:
脚本例子:
(8.x语法)
无
复制代码
1. //FindCenterColor left,top,right,bottom,c,x,y
2. //在区域内从中心到外围找颜色为c的点,把坐标保存在变量x和y中
3. //left,top,right,bottom都是整数或者整数型变量,说明了区域的左,上,右,下界限
4. //颜色是类似于"0000FF"的字符串,如果不取变量,别忘了加双引号
5. //如果没有找到这个颜色,则x和y的值都被置为-1
6. FindCenterColor 0,0,800,600,"0000FF",x,y
7. If x>0 and y>0 Then
8. MoveTo x,y
9. End If
10. //在区域(0,0,800,600)中找红色("0000FF")的点,如果找到,则把鼠标移动到这个点
脚本例子:
(7.x语法)
复制代码
1. //VBSCall FindCenterColor(left,top,right,bottom,c,x,y)
2. //在区域内从中心到外围找颜色为c的点,把坐标保存在变量x和y中
3. //left,top,right,bottom都是整数或者整数型变量,说明了区域的左,上,右,下界限
4. //颜色是类似于"0000FF"的字符串,如果不取变量,别忘了加双引号
5. //如果没有找到这个颜色,则x和y的值都被置为-1
6. VBSCall FindCenterColor(0,0,800,600,"0000FF",x,y)
7. If x>0 and y>0
8. MoveTo x,y
9. EndIf
10. //在区域(0,0,800,600)中找红色("0000FF")的点,如果找到,则把鼠标移动到这个点
命令名称:
命令功能:
命令参数:
FindColor 找色
在屏幕区域从左到右、从上到下的查找指定的颜色
参数1 整数型,屏幕左上角x坐标
参数2 整数型,屏幕左上角y坐标
参数3 整数型,屏幕右下角x坐标
参数4 整数型,屏幕右下角y坐标
参数5 字符串型,16进制颜色值
参数6 整数型,返回x坐标
参数7 整数型,返回y坐标
返 回 值:
脚本例子:
(8.x语法)
无
复制代码
1. //FindColor left,top,right,bottom,c,x,y
2. //在区域内从左到右,从上到下找颜色为c的点,把坐标保存在变量x和y中
3. //left,top,right,bottom都是整数或者整数型变量,说明了区域的左,上,右,下界限
4. //颜色是类似于"0000FF"的字符串,如果不取变量,别忘了加双引号
5. //如果没有找到这个颜色,则x和y的值都被置为-1
6. FindColor 0,0,800,600,"0000FF",x,y
7. If x>0 and y>0 Then
8. MoveTo x,y
9. End If
10. //在区域(0,0,800,600)中找红色("0000FF")的点,如果找到,则把鼠标移动到这个点
脚本例子:
(7.x语法)
复制代码
1. //VBSCall FindColor(left,top,right,bottom,c,x,y)
2. //在区域内从左到右,从上到下找颜色为c的点,把坐标保存在变量x和y中
3. //left,top,right,bottom都是整数或者整数型变量,说明了区域的左,上,右,下界限
4. //颜色是类似于"0000FF"的字符串,如果不取变量,别忘了加双引号
5. //如果没有找到这个颜色,则x和y的值都被置为-1
6. VBSCall FindColor(0,0,800,600,"0000FF",x,y)
7. If x>0 and y>0
8. MoveTo x,y
9. EndIf
10. //在区域(0,0,800,600)中找红色("0000FF")的点,如果找到,则把鼠标移动到这个点
命令名称:
命令在屏幕区域模糊查找指定的颜色
功能:
命令参数1 整数型,屏幕左上角x坐标
FindColorEx 模糊找色
参数: 参数2 整数型,屏幕左上角y坐标
参数3 整数型,屏幕右下角x坐标
参数4 整数型,屏幕右下角y坐标
参数5 字符串型,16进制颜色值
参数6 整数型,查找方式
参数7 整数型,相似度
参数8 整数型,返回x坐标
参数9 整数型,返回y坐标
返 回
无
值:
脚本例子:
(8.x语法)
复制代码
1. //FindColorEx left,top,right,bottom,c,type,similar,x,y
2. //在区域内找颜色为c的点,把坐标保存在变量x和y中
3. //left,top,right,bottom都是整数或者整数型变量,说明了区域的左,上,右,下界限
4. //颜色是类似于"0000FF"的字符串,如果不取变量,别忘了加双引号
5. //type表示查找方式。0为从上往下,从左往右找;1为从中心往外围找
6. //similar为相似度,取0.3到1之间的小数。数值越大,对相似度要求越严格。推荐取0.8
7. //如果没有找到这个颜色,则x和y的值都被置为-1
8. FindColorEx 0,0,800,600,"0000FF",1,0.8,x,y
9. If x>0 and y>0 Then
10. MoveTo x,y
11. End If
12. //在区域(0,0,800,600)中,从中间开始找接近红色("0000FF")的点,如果找到,则把鼠标移动到这个点
脚本复制代码
1. //VBSCall FindColorEx(left,top,right,bottom,c,type,similar,x,y)
例子:
2. //在区域内找颜色为c的点,把坐标保存在变量x和y中
(7.x语法)
3. //left,top,right,bottom都是整数或者整数型变量,说明了区域的左,上,右,下界限
4. //颜色是类似于"0000FF"的字符串,如果不取变量,别忘了加双引号
5. //type表示查找方式。0为从上往下,从左往右找;1为从中心往外围找
6. //similar为相似度,取0.3到1之间的小数。数值越大,对相似度要求越严格。推荐取0.8
7. //如果没有找到这个颜色,则x和y的值都被置为-1
8. VBSCall FindColorEx(0,0,800,600,"0000FF",1,0.8,x,y)
9. If x>0 and y>0
10. MoveTo x,y
11. EndIf
12. //在区域(0,0,800,600)中,从中间开始找接近红色("0000FF")的点,如果找到,则把鼠标移动到这个点
命令名称:
命令在屏幕区域查找指定相似度的图片
功能:
命令参数1 整数型,屏幕左上角x坐标
FindPic 找图
参数: 参数2 整数型,屏幕左上角y坐标
参数3 整数型,屏幕右下角x坐标
参数4 整数型,屏幕右下角y坐标
参数5 字符串型,bmp格式图片路径
参数6 整数型,相似度
参数7 整数型,返回x坐标
参数8 整数型,返回y坐标
返 回
无
值:
脚本例子:
(8.x语法)
复制代码
1. //FindPic left,top,right,bottom,filename,similar,x,y
2. //在区域内从左到右,从上到下找文件名为filename的bmp文件,把找到的坐标保存在变量x和y中
3. //left,top,right,bottom都是整数或者整数型变量,说明了区域的左,上,右,下界限
4. //filename是一个bmp格式的图片,需要您自己抓取,最好是24位,把边缘都设为单一的颜色
5. //similar为相似度,取0.5到1之间的小数。数值越大,对图片的相似度要求越严格,速度也越快。推荐取0.9
6. //如果没有找到图片,则x和y的值都被置为-1
7. //推荐使用周围颜色单一的图片
8. MessageBox "这个例子会启动一个Windows自带的扫雷程序,然后查找扫雷程序里的笑脸图形"
9. RunApp ""
10. //加入一点延时,让扫雷程序顺利启动
11. Delay 2000
12. FindPic 0,50,1023,767,"",0.9,intX,intY
13. If intX>0 and intY>0 Then
14. MoveTo intX,intY
15. MessageBox "找到图形,鼠标已经移到图形上面"
16. Else
17. MessageBox "没找到!请确认扫雷程序已经打开,并且您用的是WinXP系统"
18. End If
19. //在区域(0,50,1023,767)中找与文件中的图形比较接近的地方,如果找到,则把鼠标移动到这个地方
20. //6.30版之后,找图的文件路径可以直接引用附件中的图片,不需要释放,例子
21. MessageBox "下面把鼠标先移到0,0点,再用附件找图的方式继续查找笑脸"
22. FindPic 0,50,1023,767,"Attachment:",0.9,intX,intY
23. If intX>0 and intY>0 Then
24. MoveTo intX,intY
25. MessageBox "找到图形,鼠标已经移到图形上面"
26. Else
27. MessageBox "没找到!请确认扫雷程序已经打开,并且您用的是WinXP系统"
28. End If
29. MessageBox "脚本演示结束,最好的脚本永远是您自己制作的。 :-)"
30. EndScript
脚本复制代码
1. //VBSCall FindPic(left,top,right,bottom,filename,similar,x,y)
例子:
(7.x语法)
2. //在区域内从左到右,从上到下找文件名为filename的bmp文件,把找到的坐标保存在变量x和y中
3. //left,top,right,bottom都是整数或者整数型变量,说明了区域的左,上,右,下界限
4. //filename是一个bmp格式的图片,需要您自己抓取,最好是24位,把边缘都设为单一的颜色
5. //similar为相似度,取0.5到1之间的小数。数值越大,对图片的相似度要求越严格,速度也越快。推荐取0.9
6. //如果没有找到图片,则x和y的值都被置为-1
7. //推荐使用周围颜色单一的图片
8. MessageBox "这个例子会启动一个Windows自带的扫雷程序,然后查找扫雷程序里的笑脸图形"
9. VBSCall RunApp("")
10. //加入一点延时,让扫雷程序顺利启动
11. Delay 2000
12. VBSCall FindPic(0,50,1023,767,"",0.9,intX,intY)
13. If intX>0 and intY>0
14. MoveTo intX,intY
15. MessageBox "找到图形,鼠标已经移到图形上面"
16. Else
17. MessageBox "没找到!请确认扫雷程序已经打开,并且您用的是WinXP系统"
18. EndIf
19. //在区域(0,50,1023,767)中找与文件中的图形比较接近的地方,如果找到,则把鼠标移动到这个地方
20. //6.30版之后,找图的文件路径可以直接引用附件中的图片,不需要释放,例子
21. MessageBox "下面把鼠标先移到0,0点,再用附件找图的方式继续查找笑脸"
22. VBSCall FindPic(0,50,1023,767,"Attachment:",0.9,intX,intY)
23. If intX>0 and intY>0
24. MoveTo intX,intY
25. MessageBox "找到图形,鼠标已经移到图形上面"
26. Else
27. MessageBox "没找到!请确认扫雷程序已经打开,并且您用的是WinXP系统"
28. EndIf
29. MessageBox "脚本演示结束,最好的脚本永远是您自己制作的。 :-)"
30. EndScript
命令名称:
命令功能:
命令参数:
GetPixelColor 得到指定点颜色
得到指定位置的点的颜色
参数1 整数型,屏幕X坐标
参数2 整数型,屏幕Y坐标
返 回 值: 字符串型,得到的颜色16进制值
脚本例子:
(8.x语法)
复制代码
1. GetCursorPos x,y
2. cr1=GetPixelColor(x,y)
3. MessageBox cr1
4. //得到当前点的颜色,并弹出对话框显示出来
脚本例子:
(7.x语法)
复制代码
1. VBSCall GetCursorPos(x,y)
2. VBSCall color1=GetPixelColor(x,y)
3. MessageBox color1
4. //得到当前点的颜色,并弹出对话框显示出来
五、其他命令
命令名称:
命令功能:
命令参数:
返 回 值:
脚本例子:
(8.x语法)
Delay 延时
脚本暂停执行一段时间
参数1 整数型,延时时间
无
复制代码
1. //{延时}里面填写”毫秒”数
2. //1秒=1000毫秒, 1分钟=60000毫秒, 1小时=3600000毫秒
3. Delay 6000
4. //延迟6秒
5. x = 5000
6. Delay x
7. //延时x秒,这里x是5秒
脚本例子:
(7.x语法)
复制代码
1. //{延时}里面填写”毫秒”数
2. //1秒=1000毫秒, 1分钟=60000毫秒, 1小时=3600000毫秒
3. Delay 6000
4. //延迟6秒
5. x = 5000
6. Delay x
7. //延时x秒,这里x是5秒
命令名称:
命令功能:
命令参数:
返 回 值:
脚本例子:
(8.x语法)
Import 导入命令
导入一个vbs文件或者插件dll文件
参数1 字符串型,vbs文件或插件dll文件
无
复制代码
1. //当文件被导入后,里面的函数可以直接被调用,不需要使用VBSCall或Plugin命令
2. //在VBScript块中需要调用vbs文件或者插件中的函数时,必须采用这种方式,不能再冠以VBSCall或Plugin关键字
3. Import ""
4. //导入Memory插件命令
脚本例子:
(7.x语法)
复制代码
1. //当文件被导入后,里面的函数可以直接被调用,不需要使用VBSCall或Plugin命令
2. //在VBScript块中需要调用vbs文件或者插件中的函数时,必须采用这种方式,不能再冠以VBSCall或Plugin关键字
3. Import
4. //导入Memory插件命令
命令名称:
命令功能:
命令参数:
InputBox 用户输入对话框
在对话框中显示提示,等待用户输入文本或单击按钮,并返回文本框内容。
参数1 字符串型,消息字符串
参数2 字符串型[可选],标题
参数3 字符串型[可选],提示框默认内容
参数4 整数型[可选],对话框X坐标位置
参数5 整数型[可选],对话框Y坐标位置
返 回 值:
脚本例子:
(8.x语法)
字符串型,返回文本框内容
复制代码
1. Dim Input
2. Input = InputBox("请输入名字:","提示:","张三",0,0)
3. MsgBox "输入: " & Input
4.
5.
6. //[可选]意思是,也可以不需要填参数
7. //如下:
8. Dim Input
9. Input = InputBox("请输入名字:")
10. MsgBox "输入: " & Input
脚本例子:
(7.x语法)
复制代码
1. Dim Input
2. Input = InputBox("请输入名字:","提示:","张三",0,0)
3. MsgBox "输入: " & Input
4.
5.
6. //[可选]意思是,也可以不需要填参数
7. //如下:
8. Dim Input
9. Input = InputBox("请输入名字:")
10. MsgBox "输入: " & Input
命令名称:
命令功能:
命令参数:
返 回 值:
脚本例子:
(8.x语法)
LogStart 开始记录日志
记录日志
字符串型:文件名
无
复制代码
1. LogStart "C:" //记录日志
2. For i = 0 To 3
3. TracePrint "保存次数:" & i
4. Call rTXT(0, 0, 1024, 768, "屏幕内容填写:" & i, "0000FF")
5. Next
6. LogStop //记录日志停止
7. TracePrint "这句不会输出到日志里!"
脚本例子: 复制代码
(7.x语法)
1. 无
命令名称:
命令功能:
命令参数:
返 回 值:
脚本例子:
(8.x语法)
LogStop 停止日志记录
停止日志记录
无
无
复制代码
1. LogStart "C:" //记录日志
2. For i = 0 To 3
3. TracePrint "保存次数:" & i
4. Call rTXT(0, 0, 1024, 768, "屏幕内容填写:" & i, "0000FF")
5. Next
6. LogStop //记录日志停止
7. TracePrint "这句不会输出到日志里!"
脚本例子:
(7.x语法)
复制代码
1. 无
命令名称:
命令功能:
命令参数:
返 回 值:
脚本例子:
(8.x语法)
MessageBox 弹出对话框
弹出一个窗口
参数1 字符串型,提示内容文字
无
复制代码
1. MessageBox "弹出窗口"
2. //提醒: 按键VBS语句中也提供了MessageBox命令,可以支持变量,因此MessageBox命令也可以直接写成支持变量的方式
3. x = "提醒窗口"
4. MessageBox x
脚本例子:
(7.x语法)
复制代码
1. MessageBox "弹出窗口"
2. //提醒: 按键VBS语句中也提供了MessageBox命令,可以支持变量,因此MessageBox命令也可以直接写成支持变量的方式
3. x = "提醒窗口"
4. MessageBox x
命令名称:
命令功能:
命令参数:
PutAttachment 释放附件
把当前脚本包含的附件展开到指定的路径下
参数1 字符串型,可选:路径
参数2 字符串型,可选:要释放的文件
返 回 值:
脚本例子:
(8.x语法)
无
复制代码
1. //[路径]是指定的相对路径或者绝对路径。
2. //如果省略[路径]或者[路径]为 . ,则默认展开到按键精灵所在的文件夹中
3. //可以指定要释放的文件,允许使用通配符,如 *.bmp。如果不指定要释放的文件,则默认释放所有文件
4. PutAttachment "c:","*.bmp"
5. //将附件中所有后缀是bmp的文件释放到c盘
6. PutAttachment ".plugin","*.dll"
7. //将附件中所有后缀是dll的文件释放到当前文件夹的plugin目录下
脚本例子:
(7.x语法)
复制代码
1. //[路径]是指定的相对路径或者绝对路径。
2. //如果省略[路径]或者[路径]为 . ,则默认展开到按键精灵所在的文件夹中
3. //可以指定要释放的文件,允许使用通配符,如 *.bmp。如果不指定要释放的文件,则默认释放所有文件
4. PutAttachment c: *.bmp
5. //将附件中所有后缀是bmp的文件释放到c盘
6. PutAttachment .plugin *.dll
7. //将附件中所有后缀是dll的文件释放到当前文件夹的plugin目录下
命令名称:
命令功能:
命令参数:
返 回 值:
RunApp 运行
启动一个程序或者打开一个文件
参数1 字符串型,要运行的程序或者文件
无
脚本例子:
(8.x语法)
复制代码
1. //如果程序路径不是变量,别忘了加双引号
2. RunApp ""
3. //启动Windows记事本程序
脚本例子:
(7.x语法)
复制代码
1. //如果程序路径不是变量,别忘了加双引号
2. VBSCall RunApp("")
3. //启动Windows记事本程序
命令名称:
命令功能:
命令参数:
返 回 值:
脚本例子:
(8.x语法)
SayString 输入文本
在当前窗口输入文字
参数1 字符串型,表达式
无
复制代码
1. SayString "你好啊"
2. x = "我很好"
3. SayString x
脚本例子:
(7.x语法)
复制代码
1. SayString "你好啊"
2. x = "我很好"
3. SayString x
命令名称:
命令功能:
命令参数:
返 回 值:
脚本例子:
(8.x语法)
SetSimMode 设置模拟方式
设置模拟方式
参数1 整数型,设置模拟方式
无
复制代码
1. //模拟方式(0普通|1硬件|2超级)
2. MessageBox "这个例子会演示 普通/硬件/超级 这三种模拟方式的效果,点击确定后3秒钟开始模拟,会用普通模拟按3下a,硬件模拟按3下b,超级模拟按3下c"
3. Delay 3000
4. SetSimMode 0
5. KeyPress 65,3
6. MoveTo 0,0
7. Delay 1000
8. SetSimMode 1
9. KeyPress 66,3
10. MoveTo 100,100
11. Delay 1000
12. SetSimMode 2
13. KeyPress 67,3
14. MoveTo 200,200
15. MessageBox "演示结束"
脚本例子:
(7.x语法)
复制代码
1. //模拟方式(0普通|1硬件|2超级)
2. MessageBox "这个例子会演示 普通/硬件/超级 这三种模拟方式的效果,点击确定后3秒钟开始模拟,会用普通模拟按3下a,硬件模拟按3下b,超级模拟按3下c"
3. Delay 3000
4. SetSimMode 0
5. KeyPress 65,3
6. MoveTo 0,0
7. Delay 1000
8. SetSimMode 1
9. KeyPress 66,3
10. MoveTo 100,100
11. Delay 1000
12. SetSimMode 2
13. KeyPress 67,3
14. MoveTo 200,200
15. MessageBox "演示结束"
16.
命令名称:
命令功能:
命令参数:
返 回 值:
脚本例子:
TracePrint 调试输出
在调试窗口打印文字
参数1 字符串型,变量名
无
复制代码
(8.x语法)
1. x=100
2. //可用于输出变量的值
3. TracePrint x
4. //在调试窗口输出变量x的值
脚本例子:
(7.x语法)
复制代码
1. //可用于输出变量的值
2. TracePrint x
3. //在调试窗口输出变量x的值
命令名称:
命令功能:
命令参数:
UserVar 用户定义变量
用于支持用户设置脚本参数
参数1 字符串型,变量
参数2 字符串型,默认值
返 回 值:
脚本例子:
(8.x语法)
字符串型,设置的值
复制代码
1. //标准型自定义变量
2. //格式: UserVar {变量}={默认值} {注释}
3. //解释:这个命令主要用于用户自定义的设置功能
4. UserVar var1=30 "当HP<多少%时,使用红药"
5. UserVar var2=30 "当MP<多少%时,使用蓝药"
6. //当用户使用这个脚本的时候,可以对这var1和var2这两个变量的取值进行设置
7. //下拉型自定义变量
8. //格式: UserVar 变量=DropList{选项0:值0|选项1:值1|选项2:值2}=默认显示的选项编号 {注释}
9. //解释:这个命令预先设定多个变量值,用户可在基面通过下拉方式进行选择
10. UserVar Var1=DropList{"低于10%时补血":0.1|"低于20%时补血":0.2|"低于30%时补血":0.3}=2 "自动补血设置"
11. //特别提醒:默认显示的选项编号从0开始
脚本例子:
(7.x语法)
复制代码
1. //标准型自定义变量
2. //格式: UserVar {变量}={默认值} {注释}
3. //解释:这个命令主要用于用户自定义的设置功能
4. UserVar var1=30 当HP<多少%时,使用红药
5. UserVar var2=30 当MP<多少%时,使用蓝药
6. //当用户使用这个脚本的时候,可以对这var1和var2这两个变量的取值进行设置
7. //下拉型自定义变量
8. //格式: UserVar 变量=DropList{选项0:值0|选项1:值1|选项2:值2}=默认显示的选项编号 {注释}
9. //解释:这个命令预先设定多个变量值,用户可在基面通过下拉方式进行选择
10. UserVar Var1=DropList{低于10%时补血:0.1|低于20%时补血:0.2|低于30%时补血:0.3}=2 自动补血设置
11. //特别提醒:默认显示的选项编号从0开始
命令名称:
命令功能:
命令参数:
返 回 值:
脚本例子:
(8.x语法)
VBSBegin..VBSEnd VBS执行块
构成一个VBScript块
无
无
复制代码
1. VBSBegin
2. For i=0 to 5
3. Msgbox "我在循环运行VBScript块哦!!"
4. '这是注释
5. Next
6. VBSEnd
7. //在VBScript块中可以使用任何VBScript语句(包括VBScript的条件判断、子程序调用等等),也可以使用大多数的按键精灵命令。
8. 例子2:
9. //定义过程必须放在脚本开头!
10. VBSBegin
11. '这是一个注释
12. Function name(list)
13. msgbox list+1
14. End Function
15. VBSEnd
16. //下面是使用过程函数
17. name 10
18.
脚本例子: 复制代码
(7.x语法)
1. VBSBegin
2. For i=0 to 5
3. Msgbox "我在循环运行VBScript块哦!!"
4. '这是注释
5. Next
6. VBSEnd
7. //在VBScript块中可以使用任何VBScript语句(包括VBScript的条件判断、子程序调用等等),也可以使用大多数的按键精灵命令。
8. 例子2:
9. //定义过程必须放在脚本开头!
10. VBSBegin
11. '这是一个注释
12. Function name(list)
13. msgbox list+1
14. End Function
15. VBSEnd
16. //下面是使用过程函数
17. name 10
18.
Windowns扫雷游戏脚本实例:
Rem Start
LockMouse
//查找扫雷窗口,句柄存为hd
Plugin hd=("扫雷","扫雷")
If hd=0
MessageBox "你应该没有打开扫雷游戏吧?"
Else
//获得窗口四个角的坐标
Plugin WRect=dowRect(hd)
VBS Dim x(4)
VBS i=1
While i<=4
VBS WL=Len(WRect)
VBS LL=InStr(WRect,"|")
If LL<>0
VBS x(i)=left(WRect,LL-1)
VBS WRect=right(WRect,Wl-LL)
Else
VBS x(i)=WRect
EndIf
VBS i=i+1
EndWhile
VBS Dim hg,sg
//计算横格数
VBS hg=int((x(3)-x(1)-20)/16)
//计算竖格数
VBS sg=Int((x(4)-x(2)-100)/16)
MoveTo x(3)+1,x(4)+1
LeftClick 1
Delay 10
Plugin yPress(hd,88)
Delay 10
Plugin yPress(hd,89)
Delay 10
Plugin yPress(hd,90)
Delay 10
Plugin yPress(hd,90)
Delay 10
Plugin yPress(hd,89)
Delay 10
Plugin yPress(hd,16)
Delay 10
Plugin (hd)
//雷区最左上角一格的坐标
VBS x0=x(1)+21:y0=x(2)+100
VBS i=0
//用鼠标扫描整个雷区
While i VBS j=0 While j MoveTo x0+j*16,y0+i*16 Delay 5 IfColor 0,0,ffffff,0 LeftClick 1 Else IfColor 0,0,0,0 Else KeyPress 116,1 Goto Start EndIf EndIf VBS j=j+1 EndWhile VBS i=i+1 EndWhile EndIf UnlockMouse EndScript 按键插件《扫雷》系列一【读取内存】 内存读取插件,用于读取某窗体句柄所在进程内存。与按键精灵本身提供的“VBSCall ReadMemory()”功能几乎相同。 不同点在于: 1、VBSCall ReadMemory()读取最前台窗口内存。Plugin ()读取某窗体的内存。 2、Memory插件,提供更多更丰富的功能。 在给出Memory插件例子之前,先说说windows如何管理进程内存的,知其然要知其所以然,避免概念上的错误理解。 在说内存之前,我们要知道windows是多进程的操作系统,CPU时间片根据进程优先级的不同在各个进程中切换,从而实现了多进程的管理机制。要详细解释“进程-内存”的关系比较复杂,一两篇文章也说不清楚。这里我就简要说明几个与本文有关联的系统知识。 绝大多数学过计算机编程的同学,应该都清楚,在编写程序的时候,根本就没有多进程的概念,也不会向这方面想。但一到涉及到内存的时候就会犯迷糊,windows这么多进程,到底应该读取哪个地方的内存呢?其实不是这样的,windows只是模拟出多进程的环境,实际的运算都在CPU上完成,而一个CPU在一个时间只能处理一条指令,也就是说,对于cpu而言,只是单进程操作(请允许我提到CPU、指令这些与汇编有关系的内容,我想不到如何能把这个概念简单的描述出来,这些是概念,看懂意思就没问题了)。windows模拟多进程的操作,大概是这样的:把进程A送到CPU中处理20微秒->保存进程A环境->进程B送到CPU中处理20微秒->保存进程B环境……一直循环这个过程。CPU的速度很快,系统在多进程切换,我们基本上感觉不到。所以实现了“多进程”。 现在轮到内存了:_) 内存这里是个比较卡人的地方,当初我也卡在这里过,其实当初也是因为概念不明而已,我在这里详细说说。windows有一套自己的内存管理方案,每个进程都独享独立的4G虚拟地址空间(注意这里,是虚拟地址内存,非物理内存,当初我就卡在这里了)。这个4G,在每个进程中都是真实存在的,但因为是虚拟内存(注意这里,这里所说的虚拟内存和调节windows的虚拟内存不是一个东西),程序用到的内存部分,加载到物理内存,供给cpu读取,用不到的,依然还是硬盘上的文件。所以实际的物理内存占用并不高。明白这个概念,之后的东西就好办了。我们在读取内存的时候,读出来的都在虚拟里,windows是不允许用户直接操作物理内存的(这里涉及到ring0/3环的问题,与本文无关,略过,只要记住,我们不要考虑物理内存就可以了)。举个例子,我们读取进程A中的50000地址,再读取进程B中的50000地址,读的地址,完全不同,因为他们放到两快虚拟内存中。至于它到底在物理内存中哪个位置,只有windows知道(其实对程序员来说,也没有必要知道)。 我反复强调了“进程-内存”,是因为我当初卡在这里过,如果看到这里,你还是云里雾里,那么建议你回头再看一遍。 讲完了概念,进入正题: 我们要做的,正是读取windows自带的经典游戏《扫雷》中的“雷”所在的位置,旨在用代码描述内存插件的使用方法。我始终坚信,代码是最好的老师,比任何教程都强。所以我直接给出注释全面的代码,以供分析。 //********************************** //* 以下例子只支持xp操作系统中扫雷 * //********************************** // //hwnd中保存扫雷游戏的窗体句柄 Dim hwnd //查找《扫雷》的窗体句柄 Plugin hwnd=("扫雷","扫雷") If hwnd=0 MessageBox "扫雷游戏没有打开哟!" EndScript EndIf //x, y中分别保存当前扫雷的长与宽的格子数量 Dim x, y Plugin x=32Bit(hwnd,&h1005334) Plugin y=32Bit(hwnd,&h1005338) //建个双重循环,循环所有格子,这里用VBScript的循环会很方便,所以加入vbsbegin块 Import VBSBegin Dim i, j, value, strview strview="说明:@代表安全,*代表雷" & vbcrlf For i=0 to x-1 For j=0 to y-1 value=8Bit(hwnd,&h1005360+(j+i*32+1)) '注意:VBSBegin中的注释是“'” '//8A=显示出的雷 '//8F=未显示出的雷 If value=&h8A& or value=&h8F& then strview=strview & " *" Else strview=strview & " @" End If Next strview=strview & vbcrlf Next MessageBox strview VBSEnd 相信大家都可以通过插件的函数名称判断函数的作用,以上代码很简单,我不做过多讲解了哈 下部分,轮到windows插件,我会详细讲解“窗体位置”的概念 按键插件《扫雷》系列二【窗口位置】 按照惯例,首先介绍下“窗口坐标系”、“窗口工作区”和“窗口客户区”的概念,最后给出自动扫雷脚本。 “窗口坐标系”是我自创的描述词,术语叫什么我还真不清楚。这个概念很容易理解,我们都知道桌面分辨率,分辨率越高,显示的 桌面内容就越多。我们也知道,窗口是“摆放”在桌面上的,甚至可以超出桌面范围(比如随意把一个窗口拖到桌面之外)。而窗口坐标系就 是窗口摆放在桌面的位置。假设桌面是1024×768,那么桌面左上角坐标就是0,0。桌面右下角坐标就是1023×767(因为是从0开始)。这样, 窗口所在桌面的坐标就是“窗口坐标系”了。 “窗体工作区”和“窗体客户区”,这两个词从字面上很难理解,微软的官方文档就是这么叫的。我用一张图来表示工作区和客户区 有什么不同。 从上图可以看出,工作区包含了窗体的四条边框,上面的边框最宽,叫做标题栏,其他的边框只有窄窄的一条。为什么要区分工作区 和客户区呢?大家会议下XP系统默认的标题栏高度和98/2000系统默认的标题栏高度就明白了。也就是说,我们编写按键脚本的时候,直接从客 户区入手,这样就不用考虑标题栏高度和四条窗体边框的问题了。 下面的脚本例子,建议大家输出看看结果,对理解工作区和客户区有帮助: //************************** //*窗体工作区 与 窗体客户区* //************************** // //启动扫雷 VBSCall RunApp("") //等待扫雷启动完毕 Delay 500 dim hwnd Plugin hwnd=("扫雷","扫雷") //移动扫雷窗口到0,0位置 Plugin (hwnd,0,0) dim winrect, clirect //获得windows区域 Plugin winrect=dowRect(hwnd) //获得client区域 Plugin clirect=entRect(hwnd) MessageBox "窗体工作区:" & winrect & vbcrlf & "窗体客户区:" & clirect 明白了基本概念之后,下面给出扫雷脚本的鼠标控制例子: //********************************** //* 以下例子只支持xp操作系统中扫雷 * //********************************** // //hwnd中保存扫雷游戏的窗体句柄 Dim hwnd //查找《扫雷》的窗体句柄 Plugin hwnd=("扫雷","扫雷") If hwnd=0 MessageBox "扫雷游戏没有打开哟!" EndScript EndIf //获取扫雷窗口位置 dim cliectRect Plugin cliectRect=entRect(hwnd) //rx, ry保存雷区左上角第一个雷的坐标 dim rx, ry //按“|”分割字符串 dim tmp tmp=split(cliectRect,"|") //:是VB里的一种多行语句写成一行的用法,同样试用于按键脚本 rx=cint(tmp(0))+20 : ry=cint(tmp(1))+60 //x, y中分别保存当前扫雷的长与宽的格子数量 Dim x, y Plugin x=32Bit(hwnd,&h1005334) Plugin y=32Bit(hwnd,&h1005338) //建个双重循环,循环所有格子,这里用VB的循环会很方便,所以加入vbsbegin块 Import VBSBegin Dim i, j, value For i=0 to x-1 For j=0 to y-1 value=8Bit(hwnd,&h1005360+(j+i*32+1)) '//F==非雷 If value<>&hF&then MoveTo rx+j*16,ry+i*16 Delay 100 RightClick 1 Delay 100 End If Next Next VBSEnd 如果上一章的内容弄懂了,这篇还是真容易理解的。 下章,准备说一下“消息循环”机制,和用消息控制扫雷 按键插件《扫雷》系列二【窗口消息】 新人总会在论坛里看到后台挂机,后台消息,到底消息是什么,为什么可以实现后台,是本章描述的重点。同样最后会给出消息的扫 雷例子。 消息,在windows里占有至关重要的位置,可以说windows就是由消息驱动的。消息,顾名思义,就是通知、告知某个窗体或某个控件 现在应该接到了什么命令。windows的消息非常的多,有鼠标移动的,键盘按下弹起的,有窗口位置移动的,改变窗体大小,最小化,最大化等 。可以说,所能看到的桌面窗体变化、鼠标键盘操控,最终体现在windows里的都是消息。 windows掌管一个大的消息循环,为理解方面,我用一张草图描述这个流程: 由上图可知,消息最终发送到每个窗体,每个窗体接到这个消息命令后,怎么处理那都是各个窗体自己的活了。但是前面的部分确是 由windows掌管的。 明确了以上的内容,大家应该知道为什么有些游戏用消息不好使,有些游戏游戏用消息好使了。如果游戏自己做了某种判断,或者有 些反外挂的程序在运行(比如NP),那么消息对其无效,可以简单理解,游戏对消息做了过滤(这么描述不准确,但我们只要知道了这点,就 足够了,如想了解更多消息的内容,百度上有很多文章)。所以,消息不是所有游戏都通用的。 接下来说另外一个概念,窗口的组成。我们可以看到一个窗口,并且拖拉,最小化它。但是这个窗口,不一定由一个窗体组成。比如 IE浏览器,IE浏览器就好比一个房子,里面有很多房间,每个房间就是一个窗体,这些房间共同组成了房子。用过VB的朋友,应该很容易理解 。每拖的一个控件,都有独立的窗口句柄(句柄的概念在后面会讲到),只有table除外。只有游戏不同,一般的游戏,通常只有一个窗体,因 为是DX成像,反到不需要这许多控件。什么是DX成像?就是用DX把要显示的画面,画到窗体上。 以上内容说的非常混乱,简单理解就是,普通应用程序有很多个窗口组成一个大的窗口。而游戏,一般只有一个窗口。 这么多窗口,windows怎么知道哪个是哪个呢?聪明的windows引入了“窗体句柄”的概念。一个窗口对应一个数字,这个数字在文档 中就叫做句柄了。注意,没有一个句柄是相同的,好像门牌号一样,这样就可以顺利区分到底在给哪个窗口发送消息了。还有一点也非常重要 ,这个句柄是windows随机分配的,有效期只在这个窗口销毁前。换句话说,窗口A只要 存在,那么他的句柄就是固定的,如果关闭、再启动窗 口A,那么窗口A的句柄就会变化。假如连续启动了3个窗口A,那么3个窗口A的句柄也不一样。 罗里八梭的说了这么多,也不知道大家是否有看明白。如果没看明白,就回头再看一遍,还看不明白,跟帖留言。 总结一下我前面所说的东西: 1、windows掌管消息分发,发到窗口后,由窗口自行处理 2、一个窗口,可能由1-N个窗口组成 3、每个窗体句柄,标识一个窗体或控件 4、窗体句柄的生存周期,就是窗体的生存周期 5、同窗体每次启动,其句柄并不相同 我使用了361的后台消息插件,不多废话,直接上例子: //********************************** //* 以下例子只支持xp操作系统中扫雷 * //********************************** // //hwnd中保存扫雷游戏的窗体句柄 Dim hwnd //查找《扫雷》的窗体句柄 Plugin hwnd=("扫雷","扫雷") If hwnd=0 MessageBox "扫雷游戏没有打开哟!" EndScript EndIf //x, y中分别保存当前扫雷的长与宽的格子数量 Dim x, y Plugin x=32Bit(hwnd,&h1005334) Plugin y=32Bit(hwnd,&h1005338) //建个双重循环,循环所有格子,这里用VB的循环会很方便,所以加入vbsbegin块 Import Import VBSBegin Dim i, j, value For i=0 to x-1 For j=0 to y-1 value=8Bit(hwnd,&h1005360+(j+i*32+1)) '//小于&h80的,都不是雷 If value<&h80& then //这里的20和60大家体会一下,16是雷格式的间距:) hwnd,20+j*16,60+i*16 Else hwnd,20+j*16,60+i*16 End If Next Next VBSEnd 有没有发现代码居然比上一章的简单,没错,对消息来说,只需要知道给出这个控件偏移的x,y然后点击就可以了。 最后说一下,扫雷只有一个窗口,而且带有游戏性,这也是为什么我拿扫雷做例子的原因:) 网络游戏循环找图找坐标详细教程(供新手学习) 拜读了LZ的贴以后深感LZ的无私奉献把这么核心的能发出来,我总结上贴把LZ的所发的精简写成源码发出来!图的部分大家自己抓 [General] Description=我的脚本 BeginHotkey=121 BeginHotkeyMod=0 PauseHotkey=0 PauseHotkeyMod=0 StopHotkey=123 StopHotkeyMod=0 RunOnce=1 EnableWindow= Enable=1 AutoRun=0 [Repeat] Type=0 Number=1 [Relative] SetupOCXFile= [Comment] Content= 图片自己加好了 [Script] VBS dim s(4),t, x1, y1 VBS s(0)="0":s(1)="1":s(2)="2":s(3)="3":s(4)="k" VBS t=0 Rem 1 If t>4 Else VBSCall FindPic(0,0,650,502,"Attachment:"&s(t)&".bmp",0.8,x1,y1) If x1>0 and y1>0 Else [url=file://MessageBox]MessageBox[/url] t VBS t=t+1 Goto 1 EndIf EndIf 《蜀门》辅助脚本源码 //现在发一个目前很红的游戏《蜀门》辅助脚本源码,纯颜色版无封号危险,功能很简单,不过简单游上跟这个差不多的也要5块一星期。 //使用时到按键精灵官方网下载个按键精灵安装,打开,新建个脚本,选源文件,把源码帖在里面就好了。在右边下方有设置选项。 Delay 64 Plugin ckjb=ound() Plugin ckbk=dowRect(ckjb) VBS ckbka=split(ckbk,"|") bkx1=ckbka(0): bky1=ckbka(1): bkx2=ckbka(2): bky2=ckbka(3) Delay 64 VBS xxts="脚本初始化,请稍后............................................................" Gosub 写信息 Delay 256 UserVar Hong=50 补血百分比 UserVar lan=50 补蓝百分比 UserVar DZ=DropList{打坐:0|吃药:1}=0 低血选项 UserVar ADZ=6 打坐按键(0--9) VBS ADZ=ADZ+48 UserVar HP=4 加血按键(0--9) VBS HP=HP+48 UserVar MP=5 加蓝按键(0--9) VBS MP=MP+48 UserVar JN=1 技能按键(0--9) VBS JN=JN+48 UserVar wpgq=20e72e 怪物光圈颜色(找物品用,光圈特征色) UserVar nzsz=DropList{随机选择:0|手动选择:1}=0 验证码处理方法 Delay 256 VBSCall FindColorEx(bkx1,bky1+32,bkx1+100,bky1+100,"0300df",0,0.9,hprX,hprY) VBS hppx=Cint(hprx+hong*1.56): mppx=Cint(hprx+lan*1.56) Delay 256 Gosub HPMP Delay 64 Rem 开始主程序 Delay 100 VBSCall FindColorEx(hprX+280,hprY-4,hprX+283,hprY+4,"0300df",0,0.8,intX,intY) Delay 16 If intX>0 VBS xxx=1 VBS xxts="锁定怪物,开始攻击......................................................................................" Gosub 写信息 Delay 100 KeyPress JN,1 Delay 1000 Else Gosub 捡查验证 Delay 32 Gosub 找物 Delay 32 Gosub HPMP Delay 32 VBS xxx=0 KeyPress 9,1
发布者:admin,转转请注明出处:http://www.yc00.com/news/1707351964a1494732.html
评论列表(0条)