2024年1月18日发(作者:)

最全面的按键精灵教程

一、 键盘命令(

2~5

页)

二、鼠标命令(

5~13

页)

三、控制命令(

13~22

页)

四、颜色

/图像命令

(22~28页)

五、其他命令(

28~355

页)

五、网游脚本实例

35~最后)

键盘命令

GetLastKey

检测上次按键

命令名称:

命令功能:

命令参数:

返 回 值:

脚本例子:

检 测 上 次 按 键

参数

1

整数型,可选:变量名

复制代码

1.

//

脚本运行到这一行不会暂停

,

调用的时候立即返回,得到调用之前最后一次

(8.x

语法

按下的按键码保存在变量

Key

里。

2.

Key=GetLastKey()

If Key = 13 Then 3.

4.

Msgbox "

你上次按下了回车键

"

End If

5.

脚本例子:

复制代码

1.

//

脚本运行到这一行不会暂停

,

调用的时候立即返回,得到调用之前最后一次

(7.x

语法

按下的按键码保存在变量

Key

里。

2.

GetLastKey Key

If Key = 13

Msgbox "

你上次按下了回车键

"

EndIf

3.

4.

5.

命令名称:

命令功能:

命令参数:

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

2. //KeyDownS:

超级模拟方式

,

兼容性更强

,

对键盘和鼠标没有特别的要 求,PS2(

圆口)

USB脚本例子:

(7.x

语法

接口的键盘都可以使用

3. //KeyDownH:

硬件模拟方式

,

仅支持

PS(

圆口)

的键盘 点击查看使用硬件模 拟方式的注意事项

4. KeyDown 65,1

5. //65

A键的按键码,上面的语句表示按住

A键

1

KeyPress

按 键

命令名称:

键盘按键

命令功能:

参数

1

整数型,键盘虚拟码(

8.X

支持 按键字符)

命令参数:

参数

2

整数型,次数

无 复制代码

返 回 值:

脚本例子:

1. //KeyPress

、KeyPressS

KeyPressH

2. //KeyPressS:

超级模拟方式

,

兼容性更强

,

对键盘和鼠标没有特别的要 求,PS2(

圆口)

USB接口的键盘都可以使用

3. //KeyPressH:

硬件模拟方式

,仅支持

PS(圆口)

的键盘 点击查看使用硬件 模拟方式的注意事项

(8.x

语法

4.

5.

6.

KeyPress 65,1

//65

A

键的按键码,上面的语句表示按

A

1

7. KeyPress "A",1

8. //

上面的支持按键字符,语句表示按

A键

1

脚本例子:

复制代码

(7.x

1.

//KeyPress

//KeyPressS:

、KeyPressS

KeyPressH

超级模拟方式

,

兼容性更强

,

对键盘和鼠标没有特别的要

2.

求,PS2(

圆口)

USB接口的键盘都可以使用

3. //KeyPressH:

硬件模拟方式

,仅支持

PS(圆口)

的键盘 点击查看使用硬件

命令名称:

命令功能:

模拟方式的注意事项

4. KeyPress 65,1

5. //65

A

键的按键码,上面的语句表示按

A

1

KeyUp

弹 起

键盘弹起

命令参数:

返 回 值:

脚本例子:

(8.x

语法

脚本例子:

(7.x

命令名称:

命令功能:

命令参数:

返 回 值:参数

1

整数型,键盘虚拟码(

8.X

支持 按键字符)

参数

2

整数型,次数

复制代码

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

复制代码

1. //KeyUp

KeyUpS

KeyUpH

2. //KeyUpS:

超级模拟方式

,

兼容性更强

,

对键盘和鼠标没有特别的要 求,PS2(

圆口)

USB接口的键盘都可以使用

3. //KeyUpH:

硬件模拟方式

,

仅支持

PS(

圆口

的键盘 点击查看使用硬件模拟 方式的注意事项

4. KeyUp 65,1

5. //65

A

键的按键码,上面的语句表示松开

A键

1

WaitKey

等 待 按 任 意 键

等待按任意键

参数

1

整数型,可选:变量名

脚本例子:

(8.x

脚本例子:

(7.x

复制代码

1. Key=WaitKey()

2. //

脚本运行到这一行会暂停

,

当用户按下键盘后继续执行

,

并且把用户的按键 码保存在变量

Key

3. If Key = 13 Then

4. MessageBox "

恭喜你按下了回车键

"

5. End If

复制代码

1. WaitKey Key

2. //

脚本运行到这一行会暂停

,

当用户按下键盘后继续执行

,

并且把用户的按键 码保存在变量

Key

3. If Key = 13

4. Msgbox "

恭喜你按下了回车键

"

5. EndIf

、鼠标命令

命令名称:

命令功能:

命令参数:

返 回 值:

脚本例子:

(8.x

语法

脚本例子:

(7.x

语法

GetCursorPos

得 到 鼠 标 位 置 坐 标

得到当前鼠标所在的位置坐标

参数

1

整数型,返回

x

坐标

参数

2

整数型,返回

y

坐标

复制代码

1. GetCursorPos mx,my

2. //

把当前鼠标位置的

x

y

坐标放在变量

mx

my

复制代码

1. VBSCall GetCursorPos(mx,my)

2. //

把当前鼠标位置的

x

y

坐标放在变量

mx

my

命令名称:

命令功能:

命令参数:

返 回 值:

脚本例子:

(8.x

语脚本例子:

(7.x

语法

GetCursorShape

得 到 鼠 标 形 状

得到当前鼠标的形状特征

参数

1

整数型,参数

整数型,鼠标的形状值

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

命令名称:

命令功能:

命令参数:

返 回 值:

脚本例子:

(8.x

脚本例子:

(7.x

命令名称: 命

令功能: 命令

参数: 返 回

值: 脚本例

子:

(8.x

脚本例子:

(7.x

语法

)

14. MessageBox

不认识当前鼠标形状!

15. EndIf

GetLastClick

检 测 上 次 按 过 的 鼠

标 键

检测上一次按下的鼠标代码

参数

1

整数型,可选:变量名

复制代码

1. Mouse=GetLastClick()

2. If Mouse =32770 Or Mouse =32769 Then

3.

Msgbox "

你按下了鼠标左键

"

4. End If

复制代码

1. GetLastClick Mouse

2. If Mouse =32770 Or Mouse =32769

3. Msgbox "

你按下了鼠标左键

"

4. EndIf

LeftClick

左键单击

模拟点击鼠标左键

1. //LeftClick

、LeftClickS

LeftClickH

2. //LeftClickS:

超级模拟方式

,

兼容性更强

,

对键盘和鼠标没有特别的要 求,PS2(

圆口)

USB接口的鼠标都可以使用

3. //LeftClickH:

硬件模拟方式

,

仅支持

PS(圆口)

的鼠标 点击查看使用硬 件模拟方式的注意事项

4. LeftClick 5

5. //

在当前鼠标的位置单击鼠标左键

5

复制代码

1. //LeftClick

、LeftClickS

LeftClickH

2. //LeftClickS:

超级模拟方式

,

兼容性更强

,

对键盘和鼠标没有特别的要 求,PS2(

圆口)

USB接口的鼠标都可以使用

3. //LeftClickH:

硬件模拟方式

,

仅支持

PS(圆口)

的鼠标 点击查看使用硬 件模拟方式的注意事项

4.

5.

LeftClick 5

//

在当前鼠标的位置单击鼠标左键

5

命令名称:

命令功能:

命令参数:

返 回 值:

LeftDoubleClick

左键双击

模拟双击鼠标左键

参数

1

整数型,次数

脚本例子: 复制代码

(8.x

语法

1.

//LeftDoubleClick

//LeftDoubleClickS:

LeftDoubleClickS

LeftDoubleClickH]

2.

超级模拟方式

,

兼容性更强

,

对键盘和鼠标没有特

别的要求

,PS2(

圆口)和

USB接口的鼠标都可以使用

3.

//LeftDoubleClickH:

使用硬件模拟方式的注意事项

硬件模拟方式

,仅支持

PS(圆口)

的鼠标

点击查看

4.

LeftDoubleClick 5

5.

//

在当前鼠标的位置双击鼠标左键

5

脚本例子: 复制代码

(7.x

语法

1.

//LeftDoubleClick

//LeftDoubleClickS:

LeftDoubleClickS

LeftDoubleClickH]

2.

超级模拟方式

,

兼容性更强

,

对键盘和鼠标没有特

别的要求

,PS2(

圆口)和

USB接口的鼠标都可以使用

3.

//LeftDoubleClickH:

使用硬件模拟方式的注意事项

硬件模拟方式

,仅支持

PS(圆口)

的鼠标

点击查看

4.

LeftDoubleClick 5

5.

//

在当前鼠标的位置双击鼠标左键

5

命令名称:

命令功能:

命令参数:

返 回 值:

脚本例子:

LockMouse

锁 定 鼠 标 位 置

锁定鼠标位置,用户将不能通过移动鼠标而改变鼠标位置,而脚本仍可以改变鼠标位置

复制代码

(8.x

脚本例子:

(7.x

命令名称:

命令功能:

命令参数:

返 回 值:

脚本例子:

(8.x

语脚本例子:

(7.x

语命令名称:

1.

//

在脚本开始的时候使用这个命令,

可以有效防止用户误触鼠标引起脚本执行

出错

2. LockMouse

3. Do

4. Delay 1000

5. Loop

复制代码

1.

//

在脚本开始的时候使用这个命令,

可以有效防止用户误触鼠标引起脚本执行

出错

2. LockMouse

3. While True

4. Delay 1000

5.

EndWhile

MiddleClick

中 键 单 击

模拟点击鼠标中键

参数

1

整数型,次数

复制代码

1. //MiddleClick

MiddleClickS

MiddleClickH

2. //MiddleClickS:

超级模拟方式

,

兼容性更强

,

对键盘和鼠标没有特别的要 求,PS2(

圆口)

USB接口的鼠标都可以使用

3. //MiddleClickH:

硬件模拟方式

,

仅支持

PS(

圆口)

的鼠标 点击查看使用 硬件模拟方式的注意事项

4. MiddleClick 5

5. //

在当前鼠标的位置单击鼠标中键

5

复制代码

1. //MiddleClick

MiddleClickS

MiddleClickH

2. //MiddleClickS:

超级模拟方式

,

兼容性更强

,

对键盘和鼠标没有特别的要 求,PS2(

圆口)

USB接口的鼠标都可以使用

3. //MiddleClickH:

硬件模拟方式

,

仅支持

PS(

圆口)

的鼠标 点击查看使用

硬件模拟方式的注意事项

4. MiddleClick 5

5. //

在当前鼠标的位置单击鼠标中键

5

MouseWheel

鼠 标 滚 轮

命令功能:

命令参数:

返 回 值:

脚本例子:

(8.x

语脚本例子:

(7.x

语法

命令名称:

命令功能:

命令参数:

返 回 值:

脚本例子:

脚本例子:

(7.x

语法

)滚动鼠标滚轮

参数

1

整数型,滚动量

复制代码

1. //

如果滚动量为正

,

向上滚动

;

否则向下滚动

. 2. //

仅支持

Windows 2000

以上的操作系统

.

3. MouseWheel 1

4. //

把鼠标滚轮向上滚动

1

复制代码

1. //

如果滚动量为正

,

向上滚动

;

否则向下滚动

.

2. //

仅支持

Windows 2000

以上的操作系统

.

3. MouseWheel 1

4. //

把鼠标滚轮向上滚动

1

MoveR

鼠 标 相 对 移 动

鼠标相对移动到

参数

1

整数型,

X

距离

参数

2

整数型,

Y

距离

复制代码

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. //

提示:

使用硬件模拟方式不能碰键盘鼠标

,

否则会导致出错

2. //MoveRS:

超级模拟方式

,

兼容性更强

,

对键盘和鼠标没有特别的要 求,PS2(

圆口)

USB接口的鼠标都可以使用

3.

//MoveRH:

硬件模拟方式

,

仅支持

PS(

圆口

)

的鼠标 点击查看使用硬件模拟 方式的注意事项

4.

5.

6.

//

当前鼠标在

(100,100)

,

使用下面语句

MoveR 200,300

//

之后,

鼠标就被移到了

(100+200,100+300)

,

也就是坐标

(300,400)

7.

//

提示:

使用硬件模拟方式不能碰键盘鼠标

,

否则会导致出错

命令名称:

命令功能:

命令参数:

参数

1

整数型,

X

坐标

MoveTo

鼠 标 移 动

移动鼠标到

参数

2

整数型,

Y

坐标

返 回 值:

脚本例子:

复制代码

(8.x

语法

1.

//MoveTo

MoveToS

、MoveToH

//MoveToS:

超级模拟方式

,

兼容性更强

,

对键盘和鼠标没有特别的要

求,PS2(

圆口)

USB接口的鼠标都可以使用

2.

3.

//MoveToH:

硬件模拟方式

,仅支持

PS(圆口)

的鼠标

MoveTo 100,200

//

把鼠标移动到

(100,200)

这个点上

intX=50

intY=150

MoveTo intX,intY

//

把鼠标移动到

(intX,intY)

这个点上

,

需要

5.50

以上版本支持

.

4.

5.

6.

7.

8.

9.

脚本例子:

复制代码

1.

(7.x

语法

//MoveTo

MoveToS

、MoveToH

//MoveToS:

超级模拟方式

,

兼容性更强

,

对键盘和鼠标没有特别的要

求,PS2(

圆口)

USB接口的鼠标都可以使用

2.

3.

//MoveToH:

硬件模拟方式

,仅支持

PS(圆口)

的鼠标

MoveTo 100,200

//

把鼠标移动到

(100,200)

这个点上

intX=50

intY=150

MoveTo intX,intY

//

把鼠标移动到

(intX,intY)

这个点上

,

需要

5.50

以上版本支持

.

4.

5.

6.

7.

8.

9.

命令名称:

命令功能:

命令参数:

RestoreMousePos

保存当前鼠标位置

恢 复 上 次 保 存 的 鼠 标 位 置

返 回 值:

脚本例子:

复制代码

(8.x

语法

1.

SaveMousePos

2.

3.

//

保存当前鼠标位置

Delay 100

4.

MoveTo 500,20

5.

Delay 100

6.

RestoreMousePos

7.

//

将鼠标移动到上一次保存的鼠标位置

//

保存/

恢复鼠标位置常用于制作网络游戏练功脚本

8.

,

脚本开始时保存鼠标位

,

脚本结束时恢复鼠标位置

,

9.

//

这样脚本执行后鼠标的位置就不会变化

脚本例子:

复制代码

1.

SaveMousePos

(7.x

语法

2.

3.

//

保存当前鼠标位置

Delay 100

4.

MoveTo 500,20

5.

Delay 100

6.

RestoreMousePos

7.

//

将鼠标移动到上一次保存的鼠标位置

//

保存/

恢复鼠标位置常用于制作网络游戏练功脚本

8.

,

脚本开始时保存鼠标位

,

脚本结束时恢复鼠标位置

,

9.

这样脚本执行后鼠标的位置就不会变化

命令名称:

命令功能:

命令参数:

返 回 值:

脚本例子:

RightClick

模拟点击鼠标右键

参数

1

整数型,次数

右 键 单 击

复制代码

(8.x

语法

1. //RightClick

、RightClickS

RightClickH

2. //RightClickS:

超级模拟方式

,

兼容性更强

,

对键盘和鼠标没有特别的要 求,PS2(

圆口)

USB接口的鼠标都可以使用

3. //RightClickH:

硬件模拟方式

,

仅支持

PS(

圆口

的鼠标 点击查看使用硬

件模拟方式的注意事项

4. RightClick 5

5. //

在当前鼠标的位置单击鼠标右键

5

脚本例子:

(7.x

语法

2. //RightClickS:

超级模拟方式

,

兼容性更强

,

对键盘和鼠标没有特别的要 求,PS2(

圆口)

USB接口的鼠标都可以使用

3. //RightClickH:

硬件模拟方式

,

仅支持

PS(

圆口

的鼠标 点击查看使用硬 件模拟方式的注意事项

4. RightClick 5

5. //

在当前鼠标的位置单击鼠标右键

5

命令名称:

SaveMousePos

命令功能: 保存当前鼠标位置

命令参数:

返 回 值:

脚本例子:

保 存 当 前 鼠 标 所 在 位 置

复制代码

(8.x

语法

1.

SaveMousePos

2.

//

保存当前鼠标位置

Delay 100

3.

4.

MoveTo 500,20

5.

Delay 100

6.

RestoreMousePos

7.

//

将鼠标移动到上一次保存的鼠标位置

//

保存/

恢复鼠标位置常用于制作网络游戏练功脚本

8.

,

脚本开始时保存鼠标位

,

脚本结束时恢复鼠标位置

,

9.

//

这样脚本执行后鼠标的位置就不会变化

脚本例子:

复制代码

1.

SaveMousePos

(7.x

语法

2.

3.

//

保存当前鼠标位置

Delay 100

4.

MoveTo 500,20

5.

Delay 100

6.

RestoreMousePos

7.

8.

//

将鼠标移动到上一次保存的鼠标位置

//

保存/

恢复鼠标位置常用于制作网络游戏练功脚本

,

脚本开始时保存鼠标位

,

脚本结束时恢复鼠标位置

,

9.

这样脚本执行后鼠标的位置就不会变化

命令名称:

命令功能:

命令参数:

返 回 值:

脚本例子:

UnlockMouse

解 除 锁 定 鼠 标 位 置

解除

LockMouse

命令对鼠标位置的锁定

复制代码

(8.x

语法

1.

脚本例子: 复制代码

(7.x

语法

1. //

如果用户使用了

LockMouse

命令而没有使用

UnlockMouse

命令, 按键精

灵会在脚本结束时自动解除锁定

2. UnlockMouse

命令名称:

命令功能:

命令参数:

返 回 值:

脚本例子:

WaitClick

按 任 意 鼠标 键 继 续

脚本执行到这一句暂停

,

按下任意鼠标键之后继续

参数

1

整数型,可选:变量名

复制代码

1. last_click=WaitClick()

(8.x

2. MessageBox "

您按下了

" & last click

脚本例子: 复制代码

1. WaitClick last click

(7.x

语法

2. MessageBox "

您按下了

" & last click

三、控制命令

命令名称:

Call

调 用 过 程

命令功能:

命令参数:

返 回 值:

脚本例子:

调用过程

参数

1

字符串型,过程名

复制代码

1. Call

子程序

("

我是子程序

,

被你调用了

")

(8.x

语2. EndScript

3. //

支持中文名变量

4. Sub

子程序

5. Msgbox

6. End Sub

7. //

定义一个过程

,

可以在脚本中调用这个过程

脚本例子:

复制代码

(7.x

语法

命令名称:

命令功能:

命令参数:

返 回 值:

脚本例子:

Do

循环

条件循环

参数

1

条件型,循环条件

复制代码

1.

2.

3.

(8.x

语法

例子

1

//

支持

Exit Do

命令退出循环

i=0

Do While i=0

Msgbox "

我停不下来啦

!!

快住手

"

Loop

//

当循环条件成立的时候,反复执行循环体

4.

5.

6.

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.

31.

32.

33.

34.

35.

36. Loop

37. Msgbox n & "

38.

39.

40.

例子

5

41. i = 0

42. Do

43. MessageBox "ok"

44. Loop While i <> 0

"

Msgbox "

我将循环

10

次停下来

!!"

If n>=10 Then

//

当循环条件成立的时候,离开循环体

Exit do

End if

n=n+1

45. //

条件放后面,前面的循环内容可以执行一次!脚本例子:

(7.x

语法

命令名称: 命令功能: 命令参数:

For

循 环

循环一定次数

返 回 值: 脚本例参数

1

整数型,循环次数

子:

(8.x

语法

)无

3. For i=0 To 9

4.

5.

6.

7.

Delay 100

Next

//

循环

10

8.

例子

2

脚本例子:

(7.x

语法

命令名称:

命令功能:

命令参数:

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

复制代码

1. For 10

2. Delay 100

3. EndFor

4.

//

循环

10

Function

函 数

函数

多类型,多参数

多类型

脚本例子:

(8.x

脚本例子:

(7.x

命令名称: 命

令功能: 命令

参数: 返 回

值: 脚本例

子:

(8.x

脚本例子:

(7.x

命令名称:

命令功能:

复制代码

1. //

支持

Exit Function

命令退出函数过程

2. Msgbox

函数过程

("

我是函数

,

被你调用了

")

3. EndScript

4. Function

函数过程

(a)

5.

函数过程

=a

6. End Function

7. //

定义一个函数过程

,

可以在脚本中调用这个函数

Gosub

调 用 子 程 序

调用过程

参数

1

字符串型,过程名

复制代码

1.

//

可带参数传递

2.

Call

子程序

("

我是子程序

,

被你调用了

")

3. EndScript

4.

Sub

子程序

(a)

5. Msgbox a

6. End Sub

7.

//

定义一个过程

,

可以在脚本中调用这个过程

复制代码

1.

Gosub

子程序

2. EndScript

3.

Sub

子程序

4. Msgbox "

我是子程序

,

被你调用了

"

5.

Return

子程序

6.

//

定义一个过程

,

可以在脚本中调用这个过程

Goto

跳 转 到标 记

跳转到

Rem

标记处

命令参数:

返 回 值:

脚本例子:

参数

1

字符串型,标号

复制代码

(8.x

语法

1.

Goto

标记

Delay 100

Rem

标记

Msgbox "

你直接跳到这里了

!!

//

跳转语句,可以跳转到

rem

2.

3.

4.

,

上面的延迟没有被执行

!!"

标记过的标记处继续执行

5.

脚本例子:

复制代码

(7.x

语法

1.

Goto

标记

Delay 100

2.

3.

Rem

标记

Msgbox "

你直接跳到这里了

!!

//

跳转语句,可以跳转到

rem

,

上面的延迟没有被执行

!!"

标记过的标记处继续执行

4.

命令名称:

命令功能:

5.

If

如果..

判断表达式

命令参数:

返 回 值:

脚本例子:

参数

1

条件型,表达式

复制代码

(8.x

语法

1.

例子

1

2.

3.

i=0

If i=0 Then

Msgbox "

4.

条件判断符合被通过

!!"

5.

End If

//

通过判断表达式的取值,来执行后面的动作或控制

6.

7.

8.

例子

2

9.

i=1

10.

If i=0 Then

Msgbox "

ElseIf i=1

Msgbox "

11.

条件判断符合被通过

!!"

12.

Then

否则条件判断符合被通过

!!"

13.

14.

Else

Msgbox "

15.

否则

!!"

16. End If

脚本例子:

7.x

语法

命令名称:

命令功能:

命令参数:

返 回 值:

脚本例子:

(8.x

脚本例子:

(7.x

语法

17. //

通过判断表达式的取值,来执行后面的动作或控制

1. i=0

2. If i=0

3. Msgbox "

条件判断符合被通过

!!"

4. EndIf

5. //

通过判断表达式的取值,来执行后面的动作或控

IfColor

颜 色 判 断

判断屏幕某点的颜色 参数

1

整数型,屏幕

X

坐标 参数

2

整数型,屏幕

Y

坐标 参数

3

字符串型,颜色

16

进制值 参数

4

整数型,判断条件

复制代码

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

复制代码

1. //

判断条件

(0:

等于

1:

不等于

2:

近似等于

2. IfColor 860,27,e1b072,0

命令名称:

命令功能:

命令参数:

返 回 值:

脚本例子:

(8.x

脚本例

子:

(7.x

命令名称:

命令功能:

命令参数:

返 回 值:

脚本例子:

脚本例子:

((7.x

8.x

语法语

)

3. Msgbox "

颜色等于

"

4. Else

5. Msgbox "

颜色不等于

"

6. EndIf

7.

//

判断坐标点

(860,27)

的颜色是否等于

e1b072

Rem

标 记

/

注 释

标记命令可当注释 参数

1

字符串型,文字 无

复制代码

1. //

不支持数字开头的和符号作为标记名

2. //

标记命令

.

即可当注释

,

也可以为

Goto

跳转指令作标记

3. Rem

脚本开始

复制代码

1. //

标记命令

.

即可当注释

,

也可以为

Goto

跳转指令作标记

2. Rem

脚本开始

RestartScript

重新启动脚本运行

重新启动脚本运行

1. For i=0 to 2

2. Delay 1000

3. Call Plugin .rTXT(0, 0, 1024, 768, "

屏幕内容

填写" & i, "0000FF")

4. Next

5. RestartScript //

重新启动脚本运行

命令名称:

命令功能:

命令参数:

返 回 值:

脚本例子:

(8.x

脚本例子:

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

复制代码

1.

Sub

子 程 序

命令功能:

命令参数:

返 回 值:

脚本例子:

定义一个过程

参数

1

字符串型,过程名

复制代码

8.x

脚本例子:

(7.x

命令名称:

命令功能:

命令参数:

回 值:

脚本例子:

8.x

脚本例子:

(7.x

语法

1.

//

支持

Exit Sub

命令退出子程序过程

2.

Call

子程序

()

3. EndScript

4.

Sub

子程序

()

5. Msgbox "

我是子程序

,

被你调用了

"

6. End Sub

7.

//

定义一个过程

,

可以在脚本中调用这个过程

复制代码

1.

Gosub

子程序

2. EndScript

3.

Sub

子程序

4.

Msgbox "

我是子程序

,

被你调用了

"

5.

Return

子程序

6.

//

定义一个过程

,

可以在脚本中调用这个过程

While

如 果

..

则 循

条件循环

参数

1

条件型,循环条件

复制代码

1. i=0

2. While i=0

3. Msgbox "

我停不下来啦

!!

快住手

"

4. Wend

5.

//

当循环条件成立的时候,反复执行循环体

复制代码

1. i=0

2. While i=0

3. Msgbox "

我停不下来啦

!!

快住手

"

4. EndWhile

5. //

当循环条件成立的时候,反复执行循环体

四、颜色

/

图像命令

命令名称:

命令功能:命令参数:返 回 值:脚本例子:(8.x

法)

脚本例子:(7.x

法)

FindCenterColor

中心找色

在屏幕区域从中心开始查找指定的颜色

参数

1

整数型,屏幕左上角

x

坐标 参数

2

整数型,屏幕左上角

y

坐标 参数

3

整数型,屏幕右下角

x

坐标 参数

4

整数型,屏幕右下角

y

坐标 参数

5

字符串型,

16

进制颜色值 参数

6

整数型,返回

x

坐标

参数

7

整数型,返回

y

坐标

复制代码

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"

)的点,如果找到,则把鼠标移 动到这个点复制代码

1. //VBSCall FindCenterColor(left,top,right,bottom,c,x,y)

2. //

在区域内从中心到外围找颜色为

c

的点,把坐标保存在变量

x

y

3. //left,top,right,bottom

都是整数或者整数型变量,说明了区域的左,上, 右,下界限

命令名称:

命令功能:

命令参数:

返 回 值:

脚本例子:

(8.x

语法

)

脚本例子:

(7.x

语法

)

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

坐标

复制代码

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"

)的点,如果找到,则把鼠 标移动到这个点

复制代码

1. //VBSCall FindColor(left,top,right,bottom,c,x,y)

2.

3.

4.

5.

6.

7.

8.

9.

//

在区域内从左到右,从上到下找颜色为

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

中找红色(

"0000FF"

)的点,如果找到,则把鼠

10. //

在区域

(0,0,800,600)

标移动到这个点

命令名

称:

命令功

FindColorEx

模 糊 找 色

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

能:

命令参 参数

1

数: 参数

2

整数型,屏幕左上角

整数型,屏幕左上角

x

坐标

y

坐标

x

坐标

y

坐标

参数

3

整数型,屏幕右下角

参数

4

整数型,屏幕右下角

参数

5

字符串型,

16

进制颜色值

参数

6

整数型,查找方式

参数

7

整数型,相似度 参数

8

整数型,返回

x

坐标

参数

9

整数型,返回

y

坐标

返回

值:

脚本例

子:

复制代码

1.

2.

//FindColorEx left,top,right,bottom,c,type,similar,x,y

//

在区域内找颜色为

c

的点,把坐标保存在变量

x

y

//left,top,right,bottom

(8.x

3.

都是整数或者整数型变量,说明了区域的左,上,右,

法)

下界限

4.

//

颜色是类似于

"0000FF"

//type

表示查找方式。

0

//similar

为相似度,取

荐取

0.8

的字符串,如果不取变量,别忘了加双引号

为从上往下,从左往右找;

1

为从中心往外围找

5.

6.

0.3

1

之间的小数。数值越大,对相似度要求越严格。推

7.

8.

9.

//

如果没有找到这个颜色,则

x

y

的值都被置为

-1

FindColorEx 0,0,800,600,"0000FF",1,0.8,x,y

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)

(7.x

2.

3.

//

在区域内找颜色为

c

的点,把坐标保存在变量

x

y

//left,top,right,bottom

都是整数或者整数型变量,说明了区域的左,上,右,

下界限

法)

4.

//

颜色是类似于

"0000FF"

的字符串,如果不取变量,别忘了加双引号

//type

表示查找方式。

0

为从上往下,从左往右找;

1

为从中心往外围找

//similar

为相似度,取

0.3

1

之间的小数。数值越大,对相似度要求越严格。推

荐取

0.8

5.

6.

7.

//

如果没有找到这个颜色,则

x

y

的值都被置为

-1

VBSCall FindColorEx(0,0,800,600,"0000FF",1,0.8,x,y)

If x>0 and y>0

MoveTo x,y

8.

9.

10.

11. EndIf

12.

//

在区域

(0,0,800,600)

中,从中间开始找接近红色(

"0000FF"

)的点,如果找到,

则把鼠标移动到这个点

命令

FindPic

找 图

名称:

命令 在屏幕区域查找指定相似度的图片 功能:

命令 参数

1

整数型,屏幕左上角

2

整数型,屏幕左上角

x

坐标

y

坐标

x

坐标

y

坐标

参数: 参数

参数

3

整数型,屏幕右下角

参数

4

整数型,屏幕右下角

参数

5

字符串型,

bmp

格式图片路径

参数

6

整数型,相似度

参数

7

整数型,返回

x

坐标

参数

8

整数型,返回

y

坐标

返回

值:

脚本 例子:

复制代码

1. //FindPic left,top,right,bottom,filename,similar,x,y

2. //

在区域内从左到右, 从上到下找文件名为

filename

bmp

文件, 把找到的坐标保存 在变量

x

y

3. //left,top,right,bottom

都是整数或者整数型变量,说明了区域的左,上,右, 下界限

4.

需要您自己抓取,最好是

单一的颜色

//filename

是一个

bmp

格式的图片,24

位,把边缘都设为

(8.x

法)

5. //similar

为相似度,取

0.5

1

之间的小数。数值越大,对图片的相似度要求越严 格,速度也越快。推荐取

0.9

6.

7.

8.

9.

//

如果没有找到图片,则

x

y

的值都被置为

-1

//

推荐使用周围颜色单一的图片

MessageBox "

这个例子会启动一个

Windows

自带的扫雷程序,然后查找扫雷程序里 的笑脸图形

"

RunApp ""

10. //

加入一点延时,让扫雷程序顺利启动

11. Delay 2000

12. FindPic 0,50,1023,767,"",0.9,intX,intY

13. If intX>0 and intY>0 Then

14.

15.

MoveTo intX,intY

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.

25.

MoveTo intX,intY

MessageBox "

找到图形,鼠标已经移到图形上面

26. Else

27. MessageBox

28. End If

29. MessageBox

30. EndScript

脚本演示结束,最好的脚本永远是您自己制作的。

:-)"

没找到!请确认扫雷程序已经打开, 并且您用的是

WinXP

系统

"

脚本

例子:

复制代码

1.

//VBSCall FindPic(left,top,right,bottom,filename,similar,x,y)

//

在区域内从左到右, 从上到下找文件名为

filename

bmp

文件, 把找到的坐标保存

在变量

x

y

2.

(7.x

法)

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

MessageBox "

找到图形,鼠标已经移到图形上面

"

15.

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,int X,intY)

23. If intX>0 and intY>0

24.

MoveTo intX,intY

MessageBox "

找到图形,鼠标已经移到图形上面

"

25.

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. //

得到当前点的颜色,并弹出对话框显示出来

五、其他命令

命令名称:

命令功能:

命令参数:

返 回 值:

Delay

延时

脚本暂停执行一段时间

参数

1

整数型,延时时间

脚本例子:

复制代码

1.

//{

延时}里面填写 ”毫秒”数

(8.x

语法

2.

3.

//1

秒=

1000

毫秒, 1

分钟=

60000

毫秒, 1

小时=

3600000

毫秒

Delay 6000

//

延迟

6

x = 5000

Delay x

//

延时

x

秒,这里

x

5

4.

5.

6.

7.

脚本例子:

复制代码

(7.x

语法

1.

//{

延时}里面填写 ”毫秒”数

命令名称:

命令功能:

命令参数:

返 回 值:

脚本例子:

(8.x

脚本例子:

(7.x

命令名称:

命令功能:

命令参数:

2. //1

秒=

1000

毫秒, 1

分钟=

60000

毫秒, 1

小时=

3600000

毫秒

3. Delay 6000

4. //

延迟

6

5. x = 5000

6. Delay x

7. //

延时

x

秒,这里

x

5

Import

导 入 命

导入一个

vbs

文件或者插件

dll

文件

参数

1

字符串型,

vbs

文件或插件

dll

文件

复制代码

1. //

当文件被导入后,里面的函数可以直接被调用,不需要使用

VBSCall

Plugin

命令

2. //

VBScript

块中需要调用

vbs

文件或者插件中的函数时,必须采用这种 方式,不能再冠以

VBSCall

Plugin

关键字

3. Import ""

4. //

导入

Memory

插件命令

复制代码

1. //

当文件被导入后,里面的函数可以直接被调用,不需要使用

VBSCall

Plugin

命令

2. //

VBScript

块中需要调用

vbs

文件或者插件中的函数时,必须采用这种 方式,不能再冠以

VBSCall

Plugin

关键字

3. Import

4. //

导入

Memory

插件命令

InputBox

用 户 输 入 对 话 框

在对话框中显示提示,等待用户输入文本或单击按钮,并返回文本框内容。 参数

1

字符串型,消息字符串

参数

2

字符串型

[

可选]

,标题

参数

3

字符串型

[

可选]

,提示框默认内容

参数

4

整数型

[

可选

]

,对话框

X

坐标位置

参数

5

整数型

[

可选

]

,对话框

Y

坐标位置

返 回 值:

脚本例子:

(8.x

字符串型,返回文本框内容

复制代码

1.

2.

3.

4.

5.

6.

8.

7.

9.

Dim Input

Input = InputBox("

MsgBox "

输入

: " & Input

请输入名字

:","

提示

:","

张三

",0,0)

//[

可选]意思是,

也可以不需要填参数

//

如下

:

Dim Input

Input = InputBox("

请输入名字

:")

10.

MsgBox "

输入

: " & Input

脚本例子:

(7.x

语法

2.

3.

4.

5.

Input = InputBox("

MsgBox "

输入

: " & Input

请输入名字

:","

提示

:","

张三

",0,0)

6.

//[

可选]意思是,

也可以不需要填参数

//

如下

:8. Dim Input

7.

9.

Input = InputBox("

请输入名字

:") MsgBox "

输入

: " & Input

10.

命令名称:

命令功能:

LogStart

记录日志

开 始 记 录 日 志

命令参数:

返 回 值:

字符串型:文件名

脚本例子: 复制代码

(8.x

语法

1. LogStart "C:" //

2. For i = 0

3. TracePrint "

To 3

记录日志

保存次数:

" & i

屏幕内容

4. Call Plugin .rTXT(0, 0, 1024, 768, "

填写:

" & i, "0000FF")

5. Next

6. LogStop //

记录日志停止

7. TracePrint

这句不会输出到日志里!

脚本例子:

(7.x

语法

LogStop

停 止 日 志 记 录

停止日志记录

命令名称: 命无

令功能: 命令复制代码

参数: 返 回

1. LogStart "C:" //

记录日志

3.

4.

TracePrint "

保存次数:

" & i

Call Plugin .rTXT(0, 0, 1024, 768, "

填写:

" & i, "0000FF")

屏幕内容

2. For i = 0 To 3

值: 脚本例子:

(8.x

语5.

Next

脚本例子:

(7.x

语法

命令名称:

命令功能: 命

令参数: 返

回 值: 脚本

例子:

(8.x

语法

6. LogStop //

记录日志停止

7. TracePrint "

这句不会输出到日志里!

MessageBox

弹 出 对 话

弹出一个窗口

参数

1

字符串型,提示内容文字

复制代码

1.

2.

MessageBox "

弹出窗口

"

//

提醒:

按键

VBS

语句中也提供了

MessageBox

命令,可以支持变量,因此

MessageBox

命令也可以直接写成支持变量的方式

3.

x = "

提醒窗口

"

MessageBox x 4.

脚本例子:

(7.x

语法

命令名称:

命令功能:

命令参数:

返 回 值:

脚本例子:

(8.x

语法

脚本例子:

(7.x

语法

命令名称:

复制代码

1. MessageBox "

弹出窗口

"

2. //

提醒:

按键

VBS

语句中也提供了

MessageBox

命令,可以支持变量,因此

MessageBox

命令也可以直接写成支持变量的方式

3. x = "

提醒窗口

"

4. MessageBox x

PutAttachment

释 放 附 件

把当前脚本包含的附件展开到指定的路径下 参数

1

字符串型,可选:路径 参数

2

字符串型,可选:要释放的文件 无 复制代码

1. //[

路径]

是指定的相对路径或者绝对路径。

2. //

如果省略

[路径]或者[路径]为

.

,则默认展开到按键精灵所在的文件夹 中

3. //

可以指定要释放的文件,允许使用通配符,如

*.bmp

。如果不指定要释放 的文件,则默认释放所有文件

4. PutAttachment "c:","*.bmp"

5. //

将附件中所有后缀是

bmp

的文件释放到

c

6. PutAttachment ".plugin","*.dll"

7. //

将附件中所有后缀是

dll

的文件释放到当前文件夹的

plugin

目录下

复制代码

1. //[

路径]

是指定的相对路径或者绝对路径。

2. //

如果省略

[路径]或者[路径]为

.

,则默认展开到按键精灵所在的文件夹 中

3. //

可以指定要释放的文件,允许使用通配符,如

*.bmp

。如果不指定要释放 的文件,则默认释放所有文件

4. PutAttachment c: *.bmp

5. //

将附件中所有后缀是

bmp

的文件释放到

c

6. PutAttachment .plugin *.dll

7. //

将附件中所有后缀是

dll

的文件释放到当前文件夹的

plugin

目录下RunApp

运行

命令功能:

令参数: 返

值: 脚本

例子:

(8.x

语法

脚本例子:

(7.x

语法

命令名称: 命

令功能: 命令

参数:

返 回

值:

脚本例子:

8.x

语法

脚本例子:

(7.x

语法

命令名称:

令功能: 命令

参数:

返 回

值:

脚本例子:

SayString

输 入 文 本

在当前窗口输入文字

参数

1

字符串型,表达式

复制代码

1. SayString "

你好啊

"

2.

x = "

我很好

3. SayString x

复制代码

1. SayString "

你好啊

"

2.

x = "

我很好

3. SayString x

SetSimMode

设 置 模 拟 方

设置模拟方式

(8.x

脚本例子:

(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 "

演示结束

"

复制代码

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

//

可用于输出变量的值

TracePrint x

//

在调试窗口输出变量

x

的值

2.

3.

4.

脚本例子:

复制代码

(7.x

语法

1.

//

可用于输出变量的值

TracePrint x

//

在调试窗口输出变量

x

的值

2.

3.

命令名称:

命令功能:

命令参数:

UserVar

用 户 定 义 变 量

用于支持用户设置脚本参数

参数

1

字符串型,变量

参数

2

字符串型,默认值

字符串型,设置的值

复制代码

返 回 值:

脚本例子:

1.

(8.x

语法

2.

3.

4.

5.

6.

7.

8.

//

标准型自定义变量

//

格式: UserVar {

变量}={

默认值

} {

注释}

//

解释:

这个命令主要用于用户自定义的设置功能

UserVar var1=30 "

UserVar var2=30 "

HP<多少%时,使用红药

"

MP<多少%时,使用蓝药

"

//

当用户使用这个脚本的时候,可以对这

var1

var2

这两个变量的取值进 行设置

//

下拉型自定义变量

//

格式: UserVar

变量=DropList{

选项

0:

值0|

选项

1:

1|

选项

2:

2}=

默认显示的选项编号

{

注释

}

9. //

解释:

这个命令预先设定多个变量值,用户可在基面通过下拉方式进行选 择

低于

10%时补血

":0.1|"

低于

20%

时补血

自动补血设置

"

10. UserVar Var1=DropList{"

":0.2|"

低于

30%

时补血

":0.3}=2 "

11. //

特别提醒:默认显示的选项编号从

0

开始

脚本例子:

复制代码

(7.x

语法

1. //

标准型自定义变量

2. //

格式: UserVar {

变量}={

默认值

} {

注释}

3. //

解释:

这个命令主要用于用户自定义的设置功能

4.

5.

UserVar var1=30

HP<多少%时,使用红药

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.

2.

3.

4.

5.

6.

7.

VBSBegin

For i=0 to 5

Msgbox "

我在循环运行

'

这是注释

VBScript

块哦

!!"

Next

VBSEnd

//

VBScript

块中可以使用任何

例子

2

VBScript

语句(包括

VBScript

的条件

判断、子程序调用等等),也可以使用大多数的按键精灵命令。

8.

9.

10.

11.

12.

13.

14.

15.

16.

//

定义过程必须放在脚本开头!

VBSBegin

'

这是一个注释

Function name(list)

msgbox list+1

End Function

VBSEnd

//

下面是使用过程函数

17.

18.

name 10

脚本例子:

复制代码

(7.x

语法

)

1.

VBSBegin

2.

3.

For i=0 to 5

Msgbox "

我在循环运行

VBScript

块哦

!!"

'

这是注释

Next

VBSEnd

//

VBScript

块中可以使用任何

VBScript

语句(包括

VBScript

的条件

判断、子程序调用等等),也可以使用大多数的按键精灵命令。

4.

5.

6.

7.

8.

例子

2

9.

//

定义过程必须放在脚本开头!

10. VBSBegin

11.

'

这是一个注释

Function name(list)

msgbox list+1

End Function

12.

13.

14.

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)

//建个双重循环,循环所有格子,这里用

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

中的注释是

'

VBScript

的循环会很方便,所以加入

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)

//建个双重循环,循环所有格子,这里用

Import

VB

的循环会很方便,所以加入

vbsbegin

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)

//建个双重循环,循环所有格子,这里用

Import

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))

'//小于

&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: 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

jwx(3)=0: