admin管理员组

文章数量:1534194

2024年3月26日发(作者:)

按键精灵学习教程

一、 键盘命令(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次

命令名称:

命令功能:

命令参数:

返 回 值:

脚本例子:

(8.x语法)

WaitKey 等待按任意键

等待按任意键

参数1 整数型,可选:变量名

复制代码

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

命令名称:

命令功能:

命令参数:

返 回 值:

LeftClick 左键单击

模拟点击鼠标左键

参数1 整数型,次数

脚本例子:

(8.x语法)

复制代码

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次

命令名称:

命令功能:

SaveMousePos 保存当前鼠标所在位置

保存当前鼠标位置

命令参数:

返 回 值:

脚本例子:

(8.x语法)

复制代码

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

命令名称:

WaitClick 按任意鼠标键继续

命令功能:

命令参数:

返 回 值:

脚本例子:

(8.x语法)

脚本执行到这一句暂停,按下任意鼠标键之后继续

参数1 整数型,可选:变量名

复制代码

1. last_click=WaitClick()

2. MessageBox "您按下了" & last_click

脚本例子:

(7.x语法)

复制代码

1. WaitClick last_click

2. MessageBox "您按下了" & last_click

三、控制命令

命令名称:

命令功能:

命令参数:

返 回 值:

脚本例子:

(8.x语法)

Call 调用过程

调用过程

参数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次

命令名称:

命令功能:

命令参数:

返 回 值:

脚本例子:

(8.x语法)

Function 函数

函数

多类型,多参数

多类型

复制代码

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 跳转到标记

命令功能:

命令参数:

返 回 值:

脚本例子:

(8.x语法)

跳转到Rem标记处

参数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. 无

命令名称:

命令功能:

命令参数:

返 回 值:

脚本例子:

(8.x语法)

Sub 子程序

定义一个过程

参数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")的点,如果找到,则把鼠标移动到这个点

命令名称:

命令功能:

命令参数:

FindColorEx 模糊找色

在屏幕区域模糊查找指定的颜色

参数1 整数型,屏幕左上角x坐标

参数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")的点,如果找到,则把鼠标移动到这个

脚本例子:

(7.x语法)

复制代码

1. //VBSCall 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. 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")的点,如果找到,则把鼠标移动到这个

命令名称:

命令功能:

命令参数:

FindPic 找图

在屏幕区域查找指定相似度的图片

参数1 整数型,屏幕左上角x坐标

参数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

脚本例子:

(7.x语法)

复制代码

1. //VBSCall 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. 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坐标

返 回 值:

脚本例子:

(8.x语法)

字符串型,得到的颜色16进制值

复制代码

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. //得到当前点的颜色,并弹出对话框显示出来

五、其他命令

命令名称:

Delay 延时

命令功能:

命令参数:

返 回 值:

脚本例子:

(8.x语法)

脚本暂停执行一段时间

参数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

命令名称:

命令功能:

命令参数:

返 回 值:

脚本例子:

LogStart 开始记录日志

记录日志

字符串型:文件名

复制代码

(8.x语法)

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目录下

命令名称:

命令功能:

命令参数:

返 回 值:

脚本例子:

(8.x语法)

RunApp 运行

启动一个程序或者打开一个文件

参数1 字符串型,要运行的程序或者文件

复制代码

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.

命令名称:

命令功能:

命令参数:

返 回 值:

脚本例子:

(8.x语法)

TracePrint 调试输出

在调试窗口打印文字

参数1 字符串型,变量名

复制代码

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开始

命令名称:

命令功能:

命令参数:

返 回 值:

VBSBegin..VBSEnd VBS执行块

构成一个VBScript块

脚本例子:

(8.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.

脚本例子:

(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

Delay 128

EndIf

Delay 64

Goto 开始主程序

Sub 打坐

Delay 1000

Rem g

VBSCall FindColorEx(hprx+154,hpry,hprx+156,hpry+18,"0100df",0,0.8,hpuX,hpuY)

Delay 16

VBSCall FindColorEx(hprx+154,hpry,hprx+156,hpry+18,"e08901",0,0.8,hptX,hptY)

Delay 16

If hpuX>0 and hptx>0

Delay 200

Goto r

Else

Delay 800

Goto g

EndIf

EndIf

Rem r

Return 打坐

Sub 找物

VBS dim jwx(5), jwy(5)

Delay 64

For 2

VBSCall FindColorEx(bkx1+100,bky1+100,bkx2-100,bky2-100,wpgq,0,0.6,WX,WY)

Delay 64

EndFor

If WX>0

VBS jwx(0)=0: jwy(0)=0: jwx(1)=30: jwy(1)=0: jwx(2)=-30: jwy(2)=5: jwx(3)=0: jwy(3)=30: jwx(4)=0: jwy(4)=-30

VBS cci=0

For 5

Delay 64

MoveTo jwx(cci)+WX,jwy(cci)+WY

Delay 32

VBSCall vas=GetCursorShape(0)

Delay 32

If vas=876372781

VBS xxts="发现物品....................................................................................."

Gosub 写信息

Delay 64

RightDown 1

Delay 16

RightUp 1

Delay 64

Goto 捡

EndIf

VBS cci=cci+1

EndFor

EndIf

Rem 捡

Delay 512

Plugin XY = ape(bkx1+300,bky1+300,bkx2-200,bky2-200,

"-5|0|0,-3|0|0,-1|0|0,1|0|0,3|0|0,5|0|0,7|0|0,9|0|0,11|0|0,13|0|0,15|0|0,17|0|0,19|0|0,21|0|1,23|0|0,25|0|0,27|0|0,29|0|0,31|0|1,33|0|1,3

5|0|1,37|0|0,39|0|0,41|0|0,43|0|0,-5|2|0,-3|2|0,-1|2|0,1|2|0,3|2|0,5|2|0,7|2|0,9|2|0,11|2|0,13|2|0,15|2|0,17|2|1,19|2|1,21|2|1,23|2|0,25|2

|1,27|2|1,29|2|0,31|2|0,33|2|0,35|2|1,37|2|1,39|2|0,41|2|0,43|2|0,-5|4|1,-3|4|0,-1|4|1,1|4|1,3|4|0,5|4|1,7|4|1,9|4|1,11|4|1,13|4|1,15|4|0,

17|4|0,19|4|0,21|4|1,23|4|1,25|4|1,27|4|1,29|4|1,31|4|0,33|4|0,35|4|1,37|4|1,39|4|0,41|4|0,43|4|0,-5|6|0,-3|6|0,-1|6|0,1|6|0,3|6|0,5|6|0,

7|6|0,9|6|1,11|6|1,13|6|0,15|6|0,17|6|1,19|6|1,21|6|1,23|6|0,25|6|1,27|6|1,29|6|0,31|6|0,33|6|0,35|6|1,37|6|1,39|6|1,41|6|0,43|6|0,-5|8|

0,-3|8|0,-1|8|0,1|8|0,3|8|0,5|8|0,7|8|0,9|8|0,11|8|0,13|8|0,15|8|1,17|8|1,19|8|0,21|8|1,23|8|0,25|8|0,27|8|0,17|10|0,19|10|1,21|10|1,23|

10|0,25|10|1,27|10|1,29|10|0,31|10|0,33|10|0,35|10|1,37|10|0,39|10|0,41|10|1,43|10|0", 1)

MyArray = Split(XY, "|")

OKX = Clng(MyArray(0)): OKY = Clng(MyArray(1))

Delay 64

If OKX>0

Delay 64

MoveTo OKX,OKY

Delay 64

LeftClick 1

EndIf

Delay 64

Return 找物

Sub HPMP

VBSCall FindColorEx(hppx,hpry,hppx+1,hpry+8,"01006e",0,0.7,hpcX,hpcY)

If hpcX>0

Delay 128

Else

If DZ=0

VBS xxts="血太少,打坐吧.........................................................................................................."

Gosub 写信息

Delay 512

KeyPress ADZ,1

Gosub 打坐

Else

KeyPress HP,1

Delay 128

EndIf

EndIf

VBSCall FindColorEx(hppx,hpry+10,hppx+1,hpry+18,"6d4100",0,0.7,mpcX,mpcY)

If mpcX>0

Delay 128

Else

If DZ=0

VBS xxts="蓝太少,打坐......................................................................................................"

Gosub 写信息

Delay 512

KeyPress ADZ,1

Gosub 打坐

Else

KeyPress MP,1

Delay 128

EndIf

EndIf

Return HPMP

Sub 写信息

Delay 64

Plugin rTXT(bkx1+300,bky1+4,bkx1+800,bky1+22,xxts,"0000ff")

Delay 64

Return 写信息

Sub 移动一下

MoveTo (bkx2-bkx1)/2+100,(bky2-bky1)/2+100

Delay 128

LeftClick 1

Delay 128

Return 移动一下

Sub 捡查验证

Delay 16

Plugin XY = ape(bkx1, bky1+150, bkx2, bky2-150,

"0|0|1,2|0|1,4|0|1,6|0|1,8|0|1,10|0|0,12|0|0,14|0|0,16|0|1,18|0|0,20|0|0,22|0|0,24|0|0,26|0|0,28|0|0,30|0|1,32|0|0,34|0|0,36|0|0,38|0|1,

40|0|1,42|0|1,44|0|0,0|2|1,2|2|1,4|2|1,6|2|1,8|2|0,10|2|0,12|2|1,14|2|1,16|2|1,18|2|1,20|2|1,22|2|0,24|2|0,26|2|1,28|2|1,30|2|0,32|2|0,3

4|2|0,36|2|0,38|2|1,40|2|0,42|2|1,44|2|0,0|4|1,2|4|0,4|4|1,6|4|0,8|4|0,10|4|0,12|4|1,14|4|0,16|4|1,18|4|0,20|4|1,22|4|0,24|4|0,26|4|0,28|

4|1,30|4|0,32|4|1,34|4|0,36|4|0,38|4|1,40|4|0,42|4|1,44|4|0,0|6|1,2|6|1,4|6|1,6|6|1,8|6|0,10|6|0,12|6|1,14|6|1,16|6|1,18|6|1,20|6|1,22|6|

0,24|6|1,26|6|0,28|6|1,30|6|0,32|6|0,34|6|0,36|6|0,38|6|1,40|6|0,42|6|1,44|6|0,0|8|1,2|8|0,4|8|1,6|8|0,8|8|0,10|8|0,12|8|0,14|8|0,16|8|1,

18|8|0,20|8|0,22|8|0,24|8|0,26|8|1,28|8|1,30|8|0,32|8|0,34|8|0,36|8|0,38|8|0,40|8|0,42|8|1,44|8|0,0|10|1,2|10|1,4|10|1,6|10|1,8|10|1,1

0|10|0,12|10|0,14|10|0,16|10|1,18|10|0,20|10|0,22|10|0,24|10|1,26|10|0,28|10|1,30|10|0,32|10|0,34|10|0,36|10|0,38|10|0,40|10|0,42|

10|1,44|10|1", 1)

VBS ccca = Split(XY, "|")

VBS nzco = Clng(ccca(0)): nzcv = Clng(ccca(1))

Delay 16

If nzco>0

If nzsz=0

VBS xxts="出现验证码,你定义了随机选择,选择失败请等10分钟...................................."

Gosub 写信息

Delay 16

Gosub 随机选择

ElseIf nzsz=1

VBS xxts="出现验证码,你定义了手动处理,15秒后按任意键继续........................"

Gosub 写信息

Delay 16

For 7

KeyPress JN,1

Delay 1000

KeyPress JN,1

Delay 1000

EndFor

WaitKey

EndIf

EndIf

Return 捡查验证

Sub 随机选择

Delay 32

Randomize

VBS szmjg = Int((999 * Rnd) + 1)

Delay 32

Plugin XY = ape(bkx1, bky1+150, bkx2, bky2-150,

"0|0|1,2|0|1,4|0|1,6|0|1,8|0|1,10|0|0,12|0|0,14|0|0,16|0|1,18|0|0,20|0|0,22|0|0,24|0|0,26|0|0,28|0|0,30|0|1,32|0|0,34|0|0,36|0|0,38|0|1,

40|0|1,42|0|1,44|0|0,0|2|1,2|2|1,4|2|1,6|2|1,8|2|0,10|2|0,12|2|1,14|2|1,16|2|1,18|2|1,20|2|1,22|2|0,24|2|0,26|2|1,28|2|1,30|2|0,32|2|0,3

4|2|0,36|2|0,38|2|1,40|2|0,42|2|1,44|2|0,0|4|1,2|4|0,4|4|1,6|4|0,8|4|0,10|4|0,12|4|1,14|4|0,16|4|1,18|4|0,20|4|1,22|4|0,24|4|0,26|4|0,28|

4|1,30|4|0,32|4|1,34|4|0,36|4|0,38|4|1,40|4|0,42|4|1,44|4|0,0|6|1,2|6|1,4|6|1,6|6|1,8|6|0,10|6|0,12|6|1,14|6|1,16|6|1,18|6|1,20|6|1,22|6|

0,24|6|1,26|6|0,28|6|1,30|6|0,32|6|0,34|6|0,36|6|0,38|6|1,40|6|0,42|6|1,44|6|0,0|8|1,2|8|0,4|8|1,6|8|0,8|8|0,10|8|0,12|8|0,14|8|0,16|8|1,

18|8|0,20|8|0,22|8|0,24|8|0,26|8|1,28|8|1,30|8|0,32|8|0,34|8|0,36|8|0,38|8|0,40|8|0,42|8|1,44|8|0,0|10|1,2|10|1,4|10|1,6|10|1,8|10|1,1

0|10|0,12|10|0,14|10|0,16|10|1,18|10|0,20|10|0,22|10|0,24|10|1,26|10|0,28|10|1,30|10|0,32|10|0,34|10|0,36|10|0,38|10|0,40|10|0,42|

10|1,44|10|1", 1)

VBS MyArray = Split(XY, "|")

VBS Xznm = Clng(MyArray(0)): Yznm = Clng(MyArray(1))

Delay 32

If Xznm>0

If szmjg>0 and szmjg<250

VBS abcx=Xznm+10: abcy=Yznm+75

ElseIf szmjg>=250 and szmjg<500

VBS abcx=Xznm+10: abcy=Yznm+101

ElseIf szmjg>=500 and szmjg<750

VBS abcx=Xznm+10: abcy=Yznm+127

ElseIf szmjg>750

VBS abcx=Xznm+10: Yznm+153

EndIf

Delay 256

MoveTo abcx,abcy

Delay 32

LeftClick 1

Delay 256

MoveTo Xznm+154,Yznm+180

Delay 32

LeftClick 1

Delay 512

Plugin XY = ape(bkx1, bky1+100, bkx2, bky2-100,

"0|0|1,2|0|1,4|0|1,6|0|1,8|0|1,10|0|0,12|0|0,14|0|0,16|0|1,18|0|0,20|0|0,22|0|0,24|0|1,26|0|1,28|0|1,30|0|1,32|0|0,34|0|0,36|0|0,38|0|0,

40|0|1,42|0|0,44|0|1,46|0|0,48|0|1,50|0|0,52|0|0,54|0|0,56|0|1,58|0|0,60|0|1,62|0|0,64|0|0,66|0|0,68|0|0,70|0|0,72|0|0,74|0|0,76|0|0,7

8|0|0,80|0|0,82|0|0,84|0|0,86|0|0,88|0|1,90|0|1,92|0|1,0|2|1,2|2|0,4|2|1,6|2|0,8|2|1,10|2|0,12|2|0,14|2|0,16|2|1,18|2|0,20|2|0,22|2|0,24|

2|1,26|2|1,28|2|0,30|2|1,32|2|0,34|2|0,36|2|0,38|2|1,40|2|1,42|2|1,44|2|0,46|2|0,48|2|1,50|2|1,52|2|0,54|2|1,56|2|1,58|2|0,60|2|0,62|2|

0,64|2|0,66|2|0,68|2|0,70|2|0,72|2|1,74|2|0,76|2|0,78|2|0,80|2|0,82|2|0,84|2|1,86|2|0,88|2|1,90|2|1,92|2|1,0|4|1,2|4|0,4|4|1,6|4|0,8|4|1,

10|4|0,12|4|0,14|4|0,16|4|1,18|4|0,20|4|0,22|4|0,24|4|1,26|4|1,28|4|0,30|4|1,32|4|0,34|4|0,36|4|0,38|4|1,40|4|1,42|4|1,44|4|0,46|4|0,4

8|4|1,50|4|1,52|4|1,54|4|1,56|4|1,58|4|0,60|4|1,62|4|1,64|4|0,66|4|0,68|4|0,70|4|0,72|4|1,74|4|0,76|4|1,78|4|0,80|4|1,82|4|0,84|4|1,86|

4|1,88|4|1,90|4|1,92|4|1,0|6|1,2|6|0,4|6|1,6|6|0,8|6|1,10|6|0,12|6|0,14|6|0,16|6|1,18|6|0,20|6|0,22|6|0,24|6|1,26|6|1,28|6|1,30|6|1,32|6|

1,34|6|0,36|6|0,38|6|0,40|6|0,42|6|0,44|6|0,46|6|0,48|6|1,50|6|0,52|6|0,54|6|0,56|6|1,58|6|0,60|6|0,62|6|1,64|6|0,66|6|0,68|6|0,70|6|0,

72|6|1,74|6|0,76|6|1,78|6|0,80|6|1,82|6|0,84|6|1,86|6|0,88|6|1,90|6|0,92|6|1", 1)

VBS MyArray = Split(XY, "|")

VBS BBX = Clng(MyArray(0)): BBY = Clng(MyArray(1))

Delay 32

If BBX>0

xxts="验证码选择失败,等待10分钟....................................................."

Gosub 写信息

Delay 128

Gosub 等待

EndIf

EndIf

Return 随机选择

Sub 等待

VBS tt4=now

Rem ddsj

If datediff("s",tt4,now)>=600

Delay 512

Goto ddw

Else

Delay 512

Gosub HPMP

Delay 128

Goto ddsj

EndIf

Rem ddw

Return 等待

学习网络游戏找 怪 的思路方法(按键精灵脚本技术)

很多朋友都不知道如何在游戏中用按键精灵 找怪物

请看下面哦

对一些找怪的思路小有体会。简单来说找怪就是找怪与背景不同的独有的特征,可以通过找怪的颜色/图片、怪名字颜色/图片、怪血条颜

色/图片、渐开线扫描、小地图找怪等等的方法来实现。具体看游戏而定,下面就介绍几种找怪的方法:

1。区域找色 应该说是最简单的找怪方法了,在区域里查找怪的特有颜色、名字颜色、血条颜色、怪的阴影等等。如果找到移动鼠标到怪

身上进行攻击 (推荐用区域模糊找色或从区域中间向外找色)。

例子(区域模糊找色):

VBSCall FindColorEx(0,0,1024,768,"FFFFFF",1,0.8,x,y)

//区域模糊找色,0,0,1024,768为区域范围,"FFFFFF"为颜色,1为查找方式(中间向外),0.8为模糊值,x,y为找色后储存坐标的变量

If x>=0 and y>=0

//如果找到颜色(通过判断坐标变量是否在区域内就可以知道有没有找到目标)

MoveTo x y

//把鼠标移动到该色的坐标(如果找的是怪名字或血条,可能移动不到怪身上,这时就要用鼠标偏移如:MoveTo x+10 y+10)

Delay 50

//延时

LeftClick 1

//左键单击进行攻击

EndIf

//条件结束

用数组区域查找多色:点击查看

注:

①。区域范围的定位:

区域范围指的是被搜索区域的范围,这4个参数分别指的是区域的左,上,右,下。简单的说就是取区域的左上角x,y坐标和右下角的x,y坐

标,把这4个数值依次组合起来就是一个区域范围了。

②。很多朋友对最后两个坐标变量x,y不太了解,在这里通俗的解释一下:

顾名思义,这两个变量是用来贮存找色或找图后的坐标。当找到目标后,把目标所在的坐标位置贮存到这两个变量里,然后可以通过判断

这两个坐标变量是否在区域范围内来确定是否找到了目标。如果找到目标,贮存的是目标所在的坐标位置。如果没有找到,那贮存的则是

-1,所以我们也可以通过 if x=-1 and y=-1 来判断没有找到目标。

2。区域找图 在区域里查找怪的图形、怪的名字图片、血条图片等等。语法与区域找色相似,需要注意的是图片的处理,这里有两个教程

可以参考一下 教程①,教程②。

图片做好后可以放在按键文件夹里的script文件夹中,就可以不用在脚本里写图片路径,只需图片名就行了,写脚本的时候比较方便。

例子(区域找图):

VBSCall FindPic(0,0,1024,768,"",0.9,x,y)

//区域找图,0,0,1024,768为区域范围,""为图片名(路径),0.9为找图的相似度,x,y为找图后储存坐标的变量

If x>=0 and y>=0

//如果坐标在区域内(找到图片)

MoveTo x y

//移动到图片位置(图片左上角)

Delay 50

//延时

LeftClick 1

//左键单击

EndIf

//条件结束

3。圆形渐开线扫描找怪法 效率较低,这里有个较完整的例子可以参考一下

4。圆形渐开线扫描找变色怪 效率较低,下面是我以前收集的一个找变色怪的例子。

VBS dim x0,n,y0,x,color0,color

//声明变量

Rem start

//标记渐开线找怪开始

VBS x0=400:n=1:y0=300:x=400

//变量初始化

While x<800

//限定横坐标范围不超过800

VBS x=x0+4*(cos(n)+n*sin(n))

//根据渐开线公式计算下一个点的横坐标并赋值给x

VBS y=y0+3*(sin(n)-n*cos(n))

//根据渐开线公式计算下一个点的纵坐标并赋值给y

VBSCall color0=GetPixelColor(x,y)

//在鼠标移动之前,获取目标点色值并赋值给color0

VBSCall Call SetCursorPos(x,y)

//马上移动鼠标到目标点

VBSCall color=GetPixelColor(x,y)

//获取鼠标移动后该点色值并赋值给color

If color<>color0

//同一点取得的两次色值比较,不同,则执行以下的打怪脚本

LeftClick 1

//左键单击

Delay 3000

//打怪延时

EndIf

//该点判断结束

Delay 10

//循环延时

VBS n=n+0.2

//渐开线参数增量,其中0.2代表点间距,数值越小,渐开线散开点间距越小

EndFor

//一次渐开线取点判断结束

Goto start

//跳转到开始,重复渐开线搜索

5。小地图找怪 公式:大地图怪坐标 = (小地图怪坐标 - 小地图人物坐标) * 比例 + 大地图人物坐标

比例是(大地图怪坐标和大地图人物坐标之间的距离)与(小地图怪坐标和小地图人物坐标之间的距离)这两者的比例。如下图 A线与

B线的比例。用小地图找怪所需的计算数据必须比较准确。

然后用区域找色查找小地图上怪的小点(最好用从区域中心向外找色),找到怪的小点后再计算坐标,计算得出大地图坐标后,移动鼠标

到怪身上打怪。

下载 (340.32 KB)

2007-6-24 18:34

例子(小地图找怪):

VBSCall FindCenterColor(858,66,996,192,"0000FF",x,y)

//区域从中间向外找色,858,66,996,192是小地图的区域范围

If x>=0 and y>=0

//如果找到颜色

x0=(x-926)*10+512

y0=(y-129)*10+389

//计算大地图怪的坐标

MoveTo x0 y0

//移动到大地图怪的坐标

Delay 50

//延时

LeftClick 1

//左键单击进行攻击

EndIf

//条件结束

特别注意:移动到怪位置后用“鼠标特征码比对”可有效提高找怪的准确性。(可用于所有找怪方式内)

我暂时就写这几个了,当然找怪的方法不止这几种而已,欢迎大家一起来独立团讨论与分享~!

本文标签: 鼠标脚本命令位置