最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

按键精灵脚本命令大全及举例说明

来源:动视网 责编:小OO 时间:2025-10-01 12:46:17
文档

按键精灵脚本命令大全及举例说明

按键精灵常用命令与示范例子目录如下一、键盘命令(2~5页)二、鼠标命令(5~13页)三、控制命令(13~22页)四、颜色/图像命令(22~28页)五、其他命令(28~35页)五、网游脚本实例(35~最后)一、键盘命令命令名称:GetLastKey检测上次按键命令功能:检测上次按键命令参数:参数1整数型,可选:变量名返回值:无脚本例子:(8.x语法)  复制代码1.//脚本运行到这一行不会暂停,调用的时候立即返回,得到调用之前最后一次按下的按键码保存在变量Key里。  2.Key=GetLast
推荐度:
导读按键精灵常用命令与示范例子目录如下一、键盘命令(2~5页)二、鼠标命令(5~13页)三、控制命令(13~22页)四、颜色/图像命令(22~28页)五、其他命令(28~35页)五、网游脚本实例(35~最后)一、键盘命令命令名称:GetLastKey检测上次按键命令功能:检测上次按键命令参数:参数1整数型,可选:变量名返回值:无脚本例子:(8.x语法)  复制代码1.//脚本运行到这一行不会暂停,调用的时候立即返回,得到调用之前最后一次按下的按键码保存在变量Key里。  2.Key=GetLast
按键精灵常用命令与示范例子

目录如下

一、键盘命令(2~5页)

二、鼠标命令(5~13页)

三、控制命令(13~22页)

四、颜色/图像命令(22~28页)

五、其他命令(28~35页)

五、网游脚本实例(35~最后)

一、键盘命令

命令名称:GetLastKey 检测上次按键

命令功能:检测上次按键
命令参数:参数1 整数型,可选:变量名

返 回 值:
脚本例子:

(8.x语法)   

复制代码

1.//脚本运行到这一行不会暂停,调用的时候立即返回,得到调用之前最后一次按下的按键码保存在变量Key里。   

2.Key=GetLastKey()    

3.If Key = 13 Then    

4.    Msgbox "你上次按下了回车键"  

5.End If  

//脚本运行到这一行不会暂停,调用的时候立即返回,得到调用之前最后一次按下的按键码保存在变量Key里。

Key=GetLastKey() 

If Key = 13 Then 

    Msgbox "你上次按下了回车键"

End If

脚本例子: 

(7.x语法)  

复制代码

1.//脚本运行到这一行不会暂停,调用的时候立即返回,得到调用之前最后一次按下的按键码保存在变量Key里。   

2.GetLastKey Key   

3.If Key = 13   

4.    Msgbox "你上次按下了回车键"  

5.EndIf  

//脚本运行到这一行不会暂停,调用的时候立即返回,得到调用之前最后一次按下的按键码保存在变量Key里。

GetLastKey Key

If Key = 13

    Msgbox "你上次按下了回车键"

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次  

//KeyDown、KeyDownS、KeyDownH

//KeyDownS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的键盘都可以使用

//KeyDownH: 硬件模拟方式,仅支持PS(圆口)的键盘 点击查看使用硬件模拟方式的注意事项

KeyDown 65,1

//65是A键的按键码,上面的语句表示按住A键1次

KeyDown "A",1

//上面的支持按键字符,语句表示按住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次  

//KeyPress、KeyPressS、KeyPressH

//KeyPressS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的键盘都可以使用

//KeyPressH: 硬件模拟方式,仅支持PS(圆口)的键盘 点击查看使用硬件模拟方式的注意事项

KeyPress 65,1

//65是A键的按键码,上面的语句表示按A键1次

KeyPress "A",1

//上面的支持按键字符,语句表示按A键1次

脚本例子: 

(7.x语法)  

复制代码

1.//KeyPress、KeyPressS、KeyPressH   

2.//KeyPressS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的键盘都可以使用   

3.//KeyPressH: 硬件模拟方式,仅支持PS(圆口)的键盘 点击查看使用硬件模拟方式的注意事项   

4.KeyPress 65,1   

5.//65是A键的按键码,上面的语句表示按A键1次  

//KeyPress、KeyPressS、KeyPressH

//KeyPressS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的键盘都可以使用

//KeyPressH: 硬件模拟方式,仅支持PS(圆口)的键盘 点击查看使用硬件模拟方式的注意事项

KeyPress 65,1

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

//KeyUp、KeyUpS、KeyUpH

//KeyUpS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的键盘都可以使用

//KeyUpH: 硬件模拟方式,仅支持PS(圆口)的键盘 点击查看使用硬件模拟方式的注意事项

KeyUp 65,1

//65是A键的按键码,上面的语句表示松开A键1次

KeyUp "A",1

//上面的支持按键字符,语句表示松开A键1次

脚本例子: 

(7.x语法)  

复制代码

1.//KeyUp、KeyUpS、KeyUpH   

2.//KeyUpS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的键盘都可以使用   

3.//KeyUpH: 硬件模拟方式,仅支持PS(圆口)的键盘 点击查看使用硬件模拟方式的注意事项   

4.KeyUp 65,1   

5.//65是A键的按键码,上面的语句表示松开A键1次  

//KeyUp、KeyUpS、KeyUpH

//KeyUpS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的键盘都可以使用

//KeyUpH: 硬件模拟方式,仅支持PS(圆口)的键盘 点击查看使用硬件模拟方式的注意事项

KeyUp 65,1

//65是A键的按键码,上面的语句表示松开A键1次

命令名称:WaitKey 等待按任意键

命令功能:等待按任意键
命令参数:参数1 整数型,可选:变量名

返 回 值:
脚本例子:

(8.x语法)   

复制代码

1.Key=WaitKey()    

2.//脚本运行到这一行会暂停,当用户按下键盘后继续执行,并且把用户的按键码保存在变量Key里   

3.If Key = 13 Then    

4.    MessageBox "恭喜你按下了回车键"  

5.End If  

Key=WaitKey() 

//脚本运行到这一行会暂停,当用户按下键盘后继续执行,并且把用户的按键码保存在变量Key里

If Key = 13 Then 

    MessageBox "恭喜你按下了回车键"

End If

脚本例子: 

(7.x语法)  

复制代码

1.WaitKey Key   

2.//脚本运行到这一行会暂停,当用户按下键盘后继续执行,并且把用户的按键码保存在变量Key里   

3.If Key = 13   

4.    Msgbox "恭喜你按下了回车键"  

5.EndIf  

WaitKey Key

//脚本运行到这一行会暂停,当用户按下键盘后继续执行,并且把用户的按键码保存在变量Key里

If Key = 13

    Msgbox "恭喜你按下了回车键"

EndIf

二、鼠标命令

命令名称:GetCursorPos 得到鼠标位置坐标

命令功能:得到当前鼠标所在的位置坐标
命令参数:参数1 整数型,返回x坐标

参数2 整数型,返回y坐标

返 回 值:
脚本例子:

(8.x语法)   

复制代码

1.GetCursorPos mx,my   

2.//把当前鼠标位置的x和y坐标放在变量mx和my中  

GetCursorPos mx,my

//把当前鼠标位置的x和y坐标放在变量mx和my中

脚本例子: 

(7.x语法)  

复制代码

1.VBSCall GetCursorPos(mx,my)    

2.//把当前鼠标位置的x和y坐标放在变量mx和my中  

VBSCall GetCursorPos(mx,my) 

//把当前鼠标位置的x和y坐标放在变量mx和my中

命令名称:GetCursorShape 得到鼠标形状

命令功能:得到当前鼠标的形状特征
命令参数:参数1 整数型,参数

返 回 值:整数型,鼠标的形状值
脚本例子:

(8.x语法)   

复制代码

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  

//参数: 0 是6.83之前的版本默认的参数

//参数: 1 可用于一些在参数0下无法区分鼠标形状代码的情况

//下面是我们普通的WINDOWS鼠标形状特征

//不同电脑上鼠标形状特征也许不同,请使用"抓点抓色"功能抓取正确的鼠标形状特征

Shape1 = 1593350287

//下面是我们访问网页超链接时候的手型鼠标形状

Shape2 = 1055991329

shape=GetCursorShape(0)

If shape = shape1 Then 

    MessageBox "当前鼠标形状是普通的WINDOWS鼠标"

ElseIf shape = shape2 Then 

    MessageBox "当前鼠标形状是手型鼠标"

Else 

    MessageBox "不认识当前鼠标形状!"

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   

//参数: 0 是6.83之前的版本默认的参数

//参数: 1 可用于一些在参数0下无法区分鼠标形状代码的情况

//下面是我们普通的WINDOWS鼠标形状特征

//不同电脑上鼠标形状特征也许不同,请使用"抓点抓色"功能抓取正确的鼠标形状特征

Shape1 = 1593350287

//下面是我们访问网页超链接时候的手型鼠标形状

Shape2 = 1055991329

VBSCall Shape=GetCursorShape(0)

If shape = shape1

    MessageBox 当前鼠标形状是普通的WINDOWS鼠标

ElseIf shape = shape2

    MessageBox 当前鼠标形状是手型鼠标

Else 

    MessageBox 不认识当前鼠标形状!

EndIf 

命令名称:GetLastClick 检测上次按过的鼠标键

命令功能:检测上一次按下的鼠标代码
命令参数:参数1 整数型,可选:变量名

返 回 值:
脚本例子:

(8.x语法)   

复制代码

1.Mouse=GetLastClick()    

2.If Mouse =32770 Or Mouse =32769 Then    

3.    Msgbox "你按下了鼠标左键"  

4.End If  

Mouse=GetLastClick() 

If Mouse =32770 Or Mouse =32769 Then 

    Msgbox "你按下了鼠标左键"

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次  

//LeftClick、LeftClickS、LeftClickH

//LeftClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用

//LeftClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标 点击查看使用硬件模拟方式的注意事项

LeftClick 5

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

脚本例子: 

(7.x语法)  

复制代码

1.//LeftClick、LeftClickS、LeftClickH   

2.//LeftClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用   

3.//LeftClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标 点击查看使用硬件模拟方式的注意事项   

4.LeftClick 5   

5.//在当前鼠标的位置单击鼠标左键5次  

//LeftClick、LeftClickS、LeftClickH

//LeftClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用

//LeftClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标 点击查看使用硬件模拟方式的注意事项

LeftClick 5

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

命令名称:LeftDoubleClick 左键双击

命令功能:模拟双击鼠标左键
命令参数:参数1 整数型,次数

返 回 值:
脚本例子:

(8.x语法)   

复制代码

1.//LeftDoubleClick、LeftDoubleClickS、LeftDoubleClickH]   

2.//LeftDoubleClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用   

3.//LeftDoubleClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标 点击查看使用硬件模拟方式的注意事项   

4.LeftDoubleClick 5   

5.//在当前鼠标的位置双击鼠标左键5次  

//LeftDoubleClick、LeftDoubleClickS、LeftDoubleClickH]

//LeftDoubleClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用

//LeftDoubleClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标 点击查看使用硬件模拟方式的注意事项

LeftDoubleClick 5

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

脚本例子: 

(7.x语法)  

复制代码

1.//LeftDoubleClick、LeftDoubleClickS、LeftDoubleClickH]   

2.//LeftDoubleClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用   

3.//LeftDoubleClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标 点击查看使用硬件模拟方式的注意事项   

4.LeftDoubleClick 5   

5.//在当前鼠标的位置双击鼠标左键5次  

//LeftDoubleClick、LeftDoubleClickS、LeftDoubleClickH]

//LeftDoubleClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用

//LeftDoubleClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标 点击查看使用硬件模拟方式的注意事项

LeftDoubleClick 5

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

命令名称:LockMouse 锁定鼠标位置

命令功能:锁定鼠标位置,用户将不能通过移动鼠标而改变鼠标位置,而脚本仍可以改变鼠标位置
命令参数:
返 回 值:
脚本例子:

(8.x语法)   

复制代码

1.//在脚本开始的时候使用这个命令,可以有效防止用户误触鼠标引起脚本执行出错   

2.LockMouse   

3.Do  

4.    Delay 1000   

5.Loop  

//在脚本开始的时候使用这个命令,可以有效防止用户误触鼠标引起脚本执行出错

LockMouse

Do

    Delay 1000

Loop

脚本例子: 

(7.x语法)  

复制代码

1.//在脚本开始的时候使用这个命令,可以有效防止用户误触鼠标引起脚本执行出错   

2.LockMouse   

3.While True  

4.    Delay 1000   

5.EndWhile  

命令名称:MiddleClick 中键单击

命令功能:模拟点击鼠标中键
命令参数:参数1 整数型,次数

返 回 值:
脚本例子:

(8.x语法)   

复制代码

1.//MiddleClick、MiddleClickS、MiddleClickH   

2.//MiddleClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用   

3.//MiddleClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标 点击查看使用硬件模拟方式的注意事项   

4.MiddleClick 5   

5.//在当前鼠标的位置单击鼠标中键5次  

//MiddleClick、MiddleClickS、MiddleClickH

//MiddleClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用

//MiddleClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标 点击查看使用硬件模拟方式的注意事项

MiddleClick 5

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

脚本例子: 

(7.x语法)  

复制代码

1.//MiddleClick、MiddleClickS、MiddleClickH   

2.//MiddleClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用   

3.//MiddleClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标 点击查看使用硬件模拟方式的注意事项   

4.MiddleClick 5   

5.//在当前鼠标的位置单击鼠标中键5次  

命令名称:MouseWheel 鼠标滚轮

命令功能:滚动鼠标滚轮
命令参数:参数1 整数型,滚动量

返 回 值:
脚本例子:

(8.x语法)   

复制代码

1.//如果滚动量为正,向上滚动;否则向下滚动.   

2.//仅支持Windows 2000以上的操作系统.   

3.MouseWheel 1   

4.//把鼠标滚轮向上滚动1格  

//如果滚动量为正,向上滚动;否则向下滚动.

//仅支持Windows 2000以上的操作系统.

MouseWheel 1

//把鼠标滚轮向上滚动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.//提示:使用硬件模拟方式不能碰键盘鼠标,否则会导致出错  

//MoveR、MoveRS、MoveRH

//MoveRS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用

//MoveRH: 硬件模拟方式,仅支持PS(圆口)的鼠标 点击查看使用硬件模拟方式的注意事项

//当前鼠标在(100,100)点,使用下面语句

MoveR 200,300

//之后,鼠标就被移到了(100+200,100+300)处,也就是坐标(300,400)处

//提示:使用硬件模拟方式不能碰键盘鼠标,否则会导致出错

脚本例子: 

(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.//提示:使用硬件模拟方式不能碰键盘鼠标,否则会导致出错  

//MoveR、MoveRS、MoveRH

//MoveRS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用

//MoveRH: 硬件模拟方式,仅支持PS(圆口)的鼠标 点击查看使用硬件模拟方式的注意事项

//当前鼠标在(100,100)点,使用下面语句

MoveR 200,300

//之后,鼠标就被移到了(100+200,100+300)处,也就是坐标(300,400)处

//提示:使用硬件模拟方式不能碰键盘鼠标,否则会导致出错

命令名称: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以上版本支持.  

//MoveTo、MoveToS、MoveToH

//MoveToS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用

//MoveToH: 硬件模拟方式,仅支持PS(圆口)的鼠标

MoveTo 100,200

//把鼠标移动到(100,200)这个点上

intX=50

intY=150

MoveTo intX,intY

//把鼠标移动到(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以上版本支持.  

命令名称:RestoreMousePos 恢复上次保存的鼠标位置

命令功能:保存当前鼠标位置
命令参数:
返 回 值:
脚本例子:

(8.x语法)   

复制代码

1.SaveMousePos   

2.//保存当前鼠标位置   

3.Delay 100   

4.MoveTo 500,20   

5.Delay 100   

6.RestoreMousePos   

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

8.//保存/恢复鼠标位置常用于制作网络游戏练功脚本,脚本开始时保存鼠标位置,脚本结束时恢复鼠标位置,   

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

SaveMousePos

//保存当前鼠标位置

Delay 100

MoveTo 500,20

Delay 100

RestoreMousePos

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

//保存/恢复鼠标位置常用于制作网络游戏练功脚本,脚本开始时保存鼠标位置,脚本结束时恢复鼠标位置,

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

脚本例子: 

(7.x语法)  

复制代码

1.SaveMousePos   

2.//保存当前鼠标位置   

3.Delay 100   

4.MoveTo 500,20   

5.Delay 100   

6.RestoreMousePos   

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

8.//保存/恢复鼠标位置常用于制作网络游戏练功脚本,脚本开始时保存鼠标位置,脚本结束时恢复鼠标位置,   

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

SaveMousePos

//保存当前鼠标位置

Delay 100

MoveTo 500,20

Delay 100

RestoreMousePos

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

//保存/恢复鼠标位置常用于制作网络游戏练功脚本,脚本开始时保存鼠标位置,脚本结束时恢复鼠标位置,

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

命令名称:RightClick 右键单击

命令功能:模拟点击鼠标右键
命令参数:参数1 整数型,次数

返 回 值:
脚本例子:

(8.x语法)   

复制代码

1.//RightClick、RightClickS、RightClickH   

2.//RightClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用   

3.//RightClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标 点击查看使用硬件模拟方式的注意事项   

4.RightClick 5   

5.//在当前鼠标的位置单击鼠标右键5次  

//RightClick、RightClickS、RightClickH

//RightClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用

//RightClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标 点击查看使用硬件模拟方式的注意事项

RightClick 5

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

脚本例子: 

(7.x语法)  

复制代码

1.//RightClick、RightClickS、RightClickH   

2.//RightClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用   

3.//RightClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标 点击查看使用硬件模拟方式的注意事项   

4.RightClick 5   

5.//在当前鼠标的位置单击鼠标右键5次  

//RightClick、RightClickS、RightClickH

//RightClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用

//RightClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标 点击查看使用硬件模拟方式的注意事项

RightClick 5

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

命令名称:SaveMousePos 保存当前鼠标所在位置

命令功能:保存当前鼠标位置
命令参数:
返 回 值:
脚本例子:

(8.x语法)   

复制代码

1.SaveMousePos   

2.//保存当前鼠标位置   

3.Delay 100   

4.MoveTo 500,20   

5.Delay 100   

6.RestoreMousePos   

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

8.//保存/恢复鼠标位置常用于制作网络游戏练功脚本,脚本开始时保存鼠标位置,脚本结束时恢复鼠标位置,   

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

SaveMousePos

//保存当前鼠标位置

Delay 100

MoveTo 500,20

Delay 100

RestoreMousePos

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

//保存/恢复鼠标位置常用于制作网络游戏练功脚本,脚本开始时保存鼠标位置,脚本结束时恢复鼠标位置,

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

脚本例子: 

(7.x语法)  

复制代码

1.SaveMousePos   

2.//保存当前鼠标位置   

3.Delay 100   

4.MoveTo 500,20   

5.Delay 100   

6.RestoreMousePos   

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

8.//保存/恢复鼠标位置常用于制作网络游戏练功脚本,脚本开始时保存鼠标位置,脚本结束时恢复鼠标位置,   

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

SaveMousePos

//保存当前鼠标位置

Delay 100

MoveTo 500,20

Delay 100

RestoreMousePos

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

//保存/恢复鼠标位置常用于制作网络游戏练功脚本,脚本开始时保存鼠标位置,脚本结束时恢复鼠标位置,

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

命令名称:UnlockMouse 解除锁定鼠标位置

命令功能:解除LockMouse命令对鼠标位置的锁定

命令参数:
返 回 值:
脚本例子:

(8.x语法)   

复制代码

1.  

脚本例子: 

(7.x语法)  

复制代码

1.//如果用户使用了LockMouse命令而没有使用UnlockMouse命令,按键精灵会在脚本结束时自动解除锁定   

2.UnlockMouse  

//如果用户使用了LockMouse命令而没有使用UnlockMouse命令,按键精灵会在脚本结束时自动解除锁定

UnlockMouse

命令名称:WaitClick 按任意鼠标键继续

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

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

返 回 值:
脚本例子:

(8.x语法)   

复制代码

1.last_click=WaitClick()    

2.MessageBox "您按下了" & last_click  

last_click=WaitClick() 

MessageBox "您按下了" & last_click

脚本例子: 

(7.x语法)  

复制代码

1.WaitClick last_click   

2.MessageBox "您按下了" & last_click  

WaitClick last_click

MessageBox "您按下了" & last_click

三、控制命令

命令名称:Call 调用过程

命令功能:调用过程
命令参数:参数1 字符串型,过程名

返 回 值:
脚本例子:

(8.x语法)   

复制代码

1.Call 子程序("我是子程序,被你调用了")   

2.EndScript   

3.//支持中文名变量   

4.Sub 子程序(啊)   

5.    Msgbox 啊   

6.End Sub  

7.//定义一个过程,可以在脚本中调用这个过程  

Call 子程序("我是子程序,被你调用了")

EndScript

//支持中文名变量

Sub 子程序(啊)

    Msgbox 啊

End Sub

//定义一个过程,可以在脚本中调用这个过程

脚本例子: 

(7.x语法)  

复制代码
命令名称:Do 循环

命令功能:条件循环
命令参数:参数1 条件型,循环条件

返 回 值:
脚本例子:

(8.x语法)   

复制代码

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.//条件放后面,前面的循环内容可以执行一次!  

例子1:

//支持Exit Do 命令退出循环

i=0

Do While i=0

    Msgbox "我停不下来啦!!快住手"

Loop

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

例子2:

i=0

Do Until i=0

    Msgbox "为什么没有循环到我呢?"

Loop

Msgbox "循环结束"

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

例子3:

i=0

Do Until i=1

    Msgbox "我停不下来啦!!快住手"

Loop

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

例子4:

n=0

Do While true

    Msgbox "我将循环10次停下来!!"

If n>=10 Then

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

        Exit do

    End if

    n=n+1

Loop

Msgbox n & "次"

例子5:

i = 0

Do 

   MessageBox "ok"

Loop While i <> 0

//条件放后面,前面的循环内容可以执行一次!

脚本例子: 

(7.x语法)  

复制代码

1.无  

命令名称:For 循环

命令功能:循环一定次数
命令参数:参数1 整数型,循环次数

返 回 值:
脚本例子:

(8.x语法)   

复制代码

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次  

例子1:

//支持Exit For 命令退出循环

For i=0 To 9

    Delay 100

Next

//循环10次

例子2:

//支持Exit For 命令退出循环

For 10

    Delay 100

Next

//循环10次

例子3:

//支持Exit For 命令退出循环

For i=0 to 19 step 2

    Delay 100

Next

//循环10次

例子4:

//支持Exit For 命令退出循环

For i=0 to 19 step 2

    Delay 100

If i>9 Then

        Exit For 

    End If

Next

//循环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.//定义一个函数过程,可以在脚本中调用这个函数  

//支持Exit Function 命令退出函数过程

Msgbox 函数过程("我是函数,被你调用了")

EndScript

Function 函数过程(a)

    函数过程=a

End Function

//定义一个函数过程,可以在脚本中调用这个函数

脚本例子: 

(7.x语法)  

复制代码

1.无  

命令名称:Gosub 调用子程序

命令功能:调用过程
命令参数:参数1 字符串型,过程名

返 回 值:
脚本例子:

(8.x语法)   

复制代码

1.//可带参数传递   

2.Call 子程序("我是子程序,被你调用了")   

3.EndScript   

4.Sub 子程序(a)   

5.    Msgbox a   

6.End Sub    

7.//定义一个过程,可以在脚本中调用这个过程  

//可带参数传递

Call 子程序("我是子程序,被你调用了")

EndScript

Sub 子程序(a)

    Msgbox a

End Sub 

//定义一个过程,可以在脚本中调用这个过程

脚本例子: 

(7.x语法)  

复制代码

1.Gosub 子程序   

2.EndScript   

3.Sub 子程序   

4.    Msgbox "我是子程序,被你调用了"  

5.Return 子程序   

6.//定义一个过程,可以在脚本中调用这个过程  

Gosub 子程序

EndScript

Sub 子程序

    Msgbox "我是子程序,被你调用了"

Return 子程序

//定义一个过程,可以在脚本中调用这个过程

命令名称:Goto 跳转到标记

命令功能:跳转到Rem标记处

命令参数:参数1 字符串型,标号

返 回 值:
脚本例子:

(8.x语法)   

复制代码

1.Goto 标记   

2.Delay 100   

3.Rem 标记   

4.Msgbox "你直接跳到这里了!!,上面的延迟没有被执行!!"  

5.//跳转语句,可以跳转到rem标记过的标记处继续执行  

Goto 标记

Delay 100

Rem 标记

Msgbox "你直接跳到这里了!!,上面的延迟没有被执行!!"

//跳转语句,可以跳转到rem标记过的标记处继续执行

脚本例子: 

(7.x语法)  

复制代码

1.Goto 标记   

2.Delay 100   

3.Rem 标记   

4.Msgbox "你直接跳到这里了!!,上面的延迟没有被执行!!"  

5.//跳转语句,可以跳转到rem标记过的标记处继续执行  

Goto 标记

Delay 100

Rem 标记

Msgbox "你直接跳到这里了!!,上面的延迟没有被执行!!"

//跳转语句,可以跳转到rem标记过的标记处继续执行

命令名称:If 如果..则

命令功能:判断表达式
命令参数:参数1 条件型,表达式

返 回 值:
脚本例子:

(8.x语法)   

复制代码

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.//通过判断表达式的取值,来执行后面的动作或控制  

例子1:

i=0

If i=0 Then

    Msgbox "条件判断符合被通过!!"

End If

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

例子2:

i=1

If i=0 Then

    Msgbox "条件判断符合被通过!!"

ElseIf i=1 Then

    Msgbox "否则条件判断符合被通过!!"

Else

    Msgbox "否则!!"

End If

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

脚本例子: 

(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  

例子1:

//判断条件(0:等于 1:不等于 2:近似等于)

IfColor 860,27,"e1b072",0 Then

    Msgbox "颜色等于"

Else 

    Msgbox "颜色不等于"

End If

//判断坐标点(860,27)的颜色是否等于e1b072

例子2:

a=1:b=1

IfColor 650,118,"78F0E8",2 Then

    MessageBox "a"

ElseIf b=a Then

    MessageBox "b"

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  

//判断条件(0:等于 1:不等于 2:近似等于)

IfColor 860,27,e1b072,0

    Msgbox "颜色等于"

Else 

    Msgbox "颜色不等于"

EndIf

//判断坐标点(860,27)的颜色是否等于e1b072

命令名称:Rem 标记/注释

命令功能:标记命令可当注释
命令参数:参数1 字符串型,文字

返 回 值:
脚本例子:

(8.x语法)   

复制代码

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

2.//标记命令.即可当注释,也可以为Goto跳转指令作标记   

3.Rem 脚本开始  

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

//标记命令.即可当注释,也可以为Goto跳转指令作标记

Rem 脚本开始

脚本例子: 

(7.x语法)  

复制代码

1.//标记命令.即可当注释,也可以为Goto跳转指令作标记   

2.Rem 脚本开始  

命令名称:RestartScript 重新启动脚本运行

命令功能:重新启动脚本运行
命令参数:
返 回 值:
脚本例子:

(8.x语法)   

复制代码

1.For i=0 to 2    

2.    Delay 1000   

3.    Call Plugin.Msg.ShowScrTXT(0, 0, 1024, 768, "屏幕内容填写" & i, "0000FF")    

4.Next    

5.RestartScript //重新启动脚本运行  

For i=0 to 2 

    Delay 1000

    Call Plugin.Msg.ShowScrTXT(0, 0, 1024, 768, "屏幕内容填写" & i, "0000FF") 

Next 

RestartScript //重新启动脚本运行

脚本例子: 

(7.x语法)  

复制代码

1.无  

命令名称:Select 情况条件选择

命令功能:根据情况选择条件判断
命令参数:参数1 条件型,情况

返 回 值:
脚本例子:

(8.x语法)   

复制代码

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  

//不支持判断语句 如:Case a>0

UserVar 变量=0 "输入(0~9)数字"

//<>---------------------------------------------以下是选择条件结结构判断

Select Case 变量

Case 0

    Msgbox "你输入的数字为:0" 

Case 1

    Msgbox "你输入的数字为:1" 

Case 2

    Msgbox "你输入的数字为:2" 

Case 3

    Msgbox "你输入的数字为:3" 

Case 4

    Msgbox "你输入的数字为:4" 

Case 5

    Msgbox "你输入的数字为:5" 

Case 6

    Msgbox "你输入的数字为:6" 

Case 7

    Msgbox "你输入的数字为:7" 

Case 8

    Msgbox "你输入的数字为:8" 

Case 9

    Msgbox "你输入的数字为:9" 

Case Else

    Msgbox "你输入的数字不正确,请输入(0~9)数字!"

End Select

脚本例子: 

(7.x语法)  

复制代码

1.无  

命令名称:Sub 子程序

命令功能:定义一个过程
命令参数:参数1 字符串型,过程名

返 回 值:
脚本例子:

(8.x语法)   

复制代码

1.//支持Exit Sub 命令退出子程序过程   

2.Call 子程序()   

3.EndScript   

4.Sub 子程序()   

5.    Msgbox "我是子程序,被你调用了"  

6.End Sub  

7.//定义一个过程,可以在脚本中调用这个过程  

//支持Exit Sub 命令退出子程序过程

Call 子程序()

EndScript

Sub 子程序()

    Msgbox "我是子程序,被你调用了"

End Sub

//定义一个过程,可以在脚本中调用这个过程

脚本例子: 

(7.x语法)  

复制代码

1.Gosub 子程序   

2.EndScript   

3.Sub 子程序   

4.    Msgbox "我是子程序,被你调用了"  

5.Return 子程序   

6.//定义一个过程,可以在脚本中调用这个过程  

Gosub 子程序

EndScript

Sub 子程序

    Msgbox "我是子程序,被你调用了"

Return 子程序

//定义一个过程,可以在脚本中调用这个过程

命令名称:While 如果..则循环

命令功能:条件循环
命令参数:参数1 条件型,循环条件

返 回 值:
脚本例子:

(8.x语法)   

复制代码

1.i=0   

2.While i=0   

3.    Msgbox "我停不下来啦!!快住手"  

4.Wend   

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

i=0

While i=0

    Msgbox "我停不下来啦!!快住手"

Wend

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

脚本例子: 

(7.x语法)  

复制代码

1.i=0   

2.While i=0   

3.    Msgbox "我停不下来啦!!快住手"  

4.EndWhile   

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

i=0

While i=0

    Msgbox "我停不下来啦!!快住手"

EndWhile

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

四、颜色/图像命令

命令名称: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")的点,如果找到,则把鼠标移动到这个点  

//FindCenterColor left,top,right,bottom,c,x,y

//在区域内从中心到外围找颜色为c的点,把坐标保存在变量x和y中

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

//颜色是类似于"0000FF"的字符串,如果不取变量,别忘了加双引号

//如果没有找到这个颜色,则x和y的值都被置为-1

FindCenterColor 0,0,800,600,"0000FF",x,y

If x>0 and y>0 Then

    MoveTo x,y

End If 

//在区域(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")的点,如果找到,则把鼠标移动到这个点  

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

//在区域内从中心到外围找颜色为c的点,把坐标保存在变量x和y中

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

//颜色是类似于"0000FF"的字符串,如果不取变量,别忘了加双引号

//如果没有找到这个颜色,则x和y的值都被置为-1

VBSCall FindCenterColor(0,0,800,600,"0000FF",x,y)

If x>0 and y>0

    MoveTo x,y

EndIf 

//在区域(0,0,800,600)中找红色("0000FF")的点,如果找到,则把鼠标移动到这个点

命令名称: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")的点,如果找到,则把鼠标移动到这个点  

//FindColor left,top,right,bottom,c,x,y

//在区域内从左到右,从上到下找颜色为c的点,把坐标保存在变量x和y中

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

//颜色是类似于"0000FF"的字符串,如果不取变量,别忘了加双引号

//如果没有找到这个颜色,则x和y的值都被置为-1

FindColor 0,0,800,600,"0000FF",x,y

If x>0 and y>0 Then

    MoveTo x,y

End If 

//在区域(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")的点,如果找到,则把鼠标移动到这个点  

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

//在区域内找颜色为c的点,把坐标保存在变量x和y中

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

//颜色是类似于"0000FF"的字符串,如果不取变量,别忘了加双引号

//type表示查找方式。0为从上往下,从左往右找;1为从中心往外围找

//similar为相似度,取0.3到1之间的小数。数值越大,对相似度要求越严格。推荐取0.8

//如果没有找到这个颜色,则x和y的值都被置为-1

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

If x>0 and y>0 Then

    MoveTo x,y

End If 

//在区域(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")的点,如果找到,则把鼠标移动到这个点  

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

//在区域内找颜色为c的点,把坐标保存在变量x和y中

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

//颜色是类似于"0000FF"的字符串,如果不取变量,别忘了加双引号

//type表示查找方式。0为从上往下,从左往右找;1为从中心往外围找

//similar为相似度,取0.3到1之间的小数。数值越大,对相似度要求越严格。推荐取0.8

//如果没有找到这个颜色,则x和y的值都被置为-1

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

If x>0 and y>0

    MoveTo x,y

EndIf 

//在区域(0,0,800,600)中,从中间开始找接近红色("0000FF")的点,如果找到,则把鼠标移动到这个点

命令名称: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 "winmine.exe"  

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

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

//在区域内从左到右,从上到下找文件名为filename的bmp文件,把找到的坐标保存在变量x和y中

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

//filename是一个bmp格式的图片,需要您自己抓取,最好是24位,把边缘都设为单一的颜色

//similar为相似度,取0.5到1之间的小数。数值越大,对图片的相似度要求越严格,速度也越快。推荐取0.9

//如果没有找到图片,则x和y的值都被置为-1

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

MessageBox "这个例子会启动一个Windows自带的扫雷程序,然后查找扫雷程序里的笑脸图形"

RunApp "winmine.exe"

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

Delay 2000

If intX>0 and intY>0 Then

    MoveTo intX,intY

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

Else 

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

End If 

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

MessageBox "下面把鼠标先移到0,0点,再用附件找图的方式继续查找笑脸"

If intX>0 and intY>0 Then

    MoveTo intX,intY

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

Else 

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

End If 

MessageBox "脚本演示结束,最好的脚本永远是您自己制作的。 :-)"

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("winmine.exe")   

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

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

//在区域内从左到右,从上到下找文件名为filename的bmp文件,把找到的坐标保存在变量x和y中

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

//filename是一个bmp格式的图片,需要您自己抓取,最好是24位,把边缘都设为单一的颜色

//similar为相似度,取0.5到1之间的小数。数值越大,对图片的相似度要求越严格,速度也越快。推荐取0.9

//如果没有找到图片,则x和y的值都被置为-1

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

MessageBox "这个例子会启动一个Windows自带的扫雷程序,然后查找扫雷程序里的笑脸图形"

VBSCall RunApp("winmine.exe")

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

Delay 2000

If intX>0 and intY>0

    MoveTo intX,intY

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

Else 

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

EndIf 

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

MessageBox "下面把鼠标先移到0,0点,再用附件找图的方式继续查找笑脸"

If intX>0 and intY>0

    MoveTo intX,intY

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

Else 

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

EndIf 

MessageBox "脚本演示结束,最好的脚本永远是您自己制作的。 :-)"

EndScript 

命令名称:GetPixelColor 得到指定点颜色

命令功能:得到指定位置的点的颜色
命令参数:参数1 整数型,屏幕X坐标

参数2 整数型,屏幕Y坐标

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

脚本例子:

(8.x语法)   

复制代码

1.GetCursorPos x,y   

2.cr1=GetPixelColor(x,y)   

3.MessageBox cr1    

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

GetCursorPos x,y

cr1=GetPixelColor(x,y)

MessageBox cr1 

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

脚本例子: 

(7.x语法)  

复制代码

1.VBSCall GetCursorPos(x,y)   

2.VBSCall color1=GetPixelColor(x,y)   

3.MessageBox color1    

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

VBSCall GetCursorPos(x,y)

VBSCall color1=GetPixelColor(x,y)

MessageBox color1 

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

五、其他命令

命令名称:Delay 延时

命令功能:脚本暂停执行一段时间
命令参数:参数1 整数型,延时时间

返 回 值:
脚本例子:

(8.x语法)   

复制代码

1.//{延时}里面填写”毫秒”数   

2.//1秒=1000毫秒, 1分钟=60000毫秒, 1小时=3600000毫秒   

3.Delay 6000    

4.//延迟6秒    

5.x = 5000    

6.Delay x    

7.//延时x秒,这里x是5秒  

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

//1秒=1000毫秒, 1分钟=60000毫秒, 1小时=3600000毫秒

Delay 6000 

//延迟6秒 

x = 5000 

Delay x 

//延时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秒  

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

//1秒=1000毫秒, 1分钟=60000毫秒, 1小时=3600000毫秒

Delay 6000 

//延迟6秒 

x = 5000 

Delay x 

//延时x秒,这里x是5秒

命令名称:Import 导入命令

命令功能:导入一个vbs文件或者插件dll文件

命令参数:参数1 字符串型,vbs文件或插件dll文件

返 回 值:
脚本例子:

(8.x语法)   

复制代码

1.//当文件被导入后,里面的函数可以直接被调用,不需要使用VBSCall或Plugin命令   

2.//在VBScript块中需要调用vbs文件或者插件中的函数时,必须采用这种方式,不能再冠以VBSCall或Plugin关键字   

3.Import "Memory.dll"  

4.//导入Memory插件命令  

//当文件被导入后,里面的函数可以直接被调用,不需要使用VBSCall或Plugin命令

//在VBScript块中需要调用vbs文件或者插件中的函数时,必须采用这种方式,不能再冠以VBSCall或Plugin关键字

Import "Memory.dll"

//导入Memory插件命令

脚本例子: 

(7.x语法)  

复制代码

1.//当文件被导入后,里面的函数可以直接被调用,不需要使用VBSCall或Plugin命令   

2.//在VBScript块中需要调用vbs文件或者插件中的函数时,必须采用这种方式,不能再冠以VBSCall或Plugin关键字   

3.Import Memory.dll   

4.//导入Memory插件命令  

//当文件被导入后,里面的函数可以直接被调用,不需要使用VBSCall或Plugin命令

//在VBScript块中需要调用vbs文件或者插件中的函数时,必须采用这种方式,不能再冠以VBSCall或Plugin关键字

Import Memory.dll

//导入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  

Dim Input

Input = InputBox("请输入名字:

MsgBox "输入: " & Input

//[可选]意思是,也可以不需要填参数

//如下:

Dim Input

Input = InputBox("请输入名字:") 

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  

Dim Input

Input = InputBox("请输入名字:

MsgBox "输入: " & Input

//[可选]意思是,也可以不需要填参数

//如下:

Dim Input

Input = InputBox("请输入名字:") 

MsgBox "输入: " & Input

命令名称:LogStart 开始记录日志

命令功能:记录日志
命令参数:字符串型:文件名
返 回 值:
脚本例子:

(8.x语法)   

复制代码

1.LogStart "C:\\a.log" //记录日志   

2.For i = 0 To 3   

3.    TracePrint "保存次数:" & i   

4.    Call Plugin.Msg.ShowScrTXT(0, 0, 1024, 768, "屏幕内容填写:" & i, "0000FF")   

5.Next  

6.LogStop //记录日志停止   

7.TracePrint "这句不会输出到日志里!"  

LogStart "C:\\a.log" //记录日志

For i = 0 To 3

    TracePrint "保存次数:" & i

    Call Plugin.Msg.ShowScrTXT(0, 0, 1024, 768, "屏幕内容填写:" & i, "0000FF")

Next

LogStop //记录日志停止

TracePrint "这句不会输出到日志里!"

脚本例子: 

(7.x语法)  

复制代码

1.无  

命令名称:LogStop 停止日志记录

命令功能:停止日志记录
命令参数:
返 回 值:
脚本例子:

(8.x语法)   

复制代码

1.LogStart "C:\\a.log" //记录日志   

2.For i = 0 To 3   

3.    TracePrint "保存次数:" & i   

4.    Call Plugin.Msg.ShowScrTXT(0, 0, 1024, 768, "屏幕内容填写:" & i, "0000FF")   

5.Next  

6.LogStop //记录日志停止   

7.TracePrint "这句不会输出到日志里!"  

LogStart "C:\\a.log" //记录日志

For i = 0 To 3

    TracePrint "保存次数:" & i

    Call Plugin.Msg.ShowScrTXT(0, 0, 1024, 768, "屏幕内容填写:" & i, "0000FF")

Next

LogStop //记录日志停止

TracePrint "这句不会输出到日志里!"

脚本例子: 

(7.x语法)  

复制代码

1.无 

命令名称:MessageBox 弹出对话框

命令功能:弹出一个窗口
命令参数:参数1 字符串型,提示内容文字

返 回 值:
脚本例子:

(8.x语法)   

复制代码

1.MessageBox "弹出窗口"    

2.//提醒: 按键VBS语句中也提供了MessageBox命令,可以支持变量,因此MessageBox命令也可以直接写成支持变量的方式   

3.x = "提醒窗口"    

4.MessageBox x  

MessageBox "弹出窗口" 

//提醒: 按键VBS语句中也提供了MessageBox命令,可以支持变量,因此MessageBox命令也可以直接写成支持变量的方式

x = "提醒窗口" 

MessageBox x

脚本例子: 

(7.x语法)  

复制代码

1.MessageBox "弹出窗口"    

2.//提醒: 按键VBS语句中也提供了MessageBox命令,可以支持变量,因此MessageBox命令也可以直接写成支持变量的方式   

3.x = "提醒窗口"    

4.MessageBox x  

MessageBox "弹出窗口" 

//提醒: 按键VBS语句中也提供了MessageBox命令,可以支持变量,因此MessageBox命令也可以直接写成支持变量的方式

x = "提醒窗口" 

MessageBox x

命令名称:PutAttachment 释放附件

命令功能:把当前脚本包含的附件展开到指定的路径下
命令参数:参数1 字符串型,可选:路径

参数2 字符串型,可选:要释放的文件

返 回 值:
脚本例子:

(8.x语法)   

复制代码

1.//[路径]是指定的相对路径或者绝对路径。   

2.//如果省略[路径]或者[路径]为 . ,则默认展开到按键精灵所在的文件夹中   

3.//可以指定要释放的文件,允许使用通配符,如。如果不指定要释放的文件,则默认释放所有文件   

4.PutAttachment "c:\\

5.//将附件中所有后缀是bmp的文件释放到c盘   

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

7.//将附件中所有后缀是dll的文件释放到当前文件夹的plugin目录下  

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

//如果省略[路径]或者[路径]为 . ,则默认展开到按键精灵所在的文件夹中

//将附件中所有后缀是bmp的文件释放到c盘

PutAttachment ".\\plugin

//将附件中所有后缀是dll的文件释放到当前文件夹的plugin目录下

脚本例子: 

(7.x语法)  

复制代码

1.//[路径]是指定的相对路径或者绝对路径。   

2.//如果省略[路径]或者[路径]为 . ,则默认展开到按键精灵所在的文件夹中   

3.//可以指定要释放的文件,允许使用通配符,如。如果不指定要释放的文件,则默认释放所有文件   

4.

5.//将附件中所有后缀是bmp的文件释放到c盘   

6.PutAttachment .\\plugin *.dll   

7.//将附件中所有后缀是dll的文件释放到当前文件夹的plugin目录下  

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

//如果省略[路径]或者[路径]为 . ,则默认展开到按键精灵所在的文件夹中

//将附件中所有后缀是bmp的文件释放到c盘

PutAttachment .\\plugin *.dll

//将附件中所有后缀是dll的文件释放到当前文件夹的plugin目录下

命令名称:RunApp 运行

命令功能:启动一个程序或者打开一个文件
命令参数:参数1 字符串型,要运行的程序或者文件

返 回 值:
脚本例子:

(8.x语法)   

复制代码

1.//如果程序路径不是变量,别忘了加双引号   

2.RunApp "notepad.exe"    

3.//启动Windows记事本程序  

//如果程序路径不是变量,别忘了加双引号

RunApp "notepad.exe" 

//启动Windows记事本程序

脚本例子: 

(7.x语法)  

复制代码

1.//如果程序路径不是变量,别忘了加双引号   

2.VBSCall RunApp("notepad.exe")    

3.//启动Windows记事本程序  

//如果程序路径不是变量,别忘了加双引号

VBSCall RunApp("notepad.exe") 

//启动Windows记事本程序

命令名称:SayString 输入文本

命令功能:在当前窗口输入文字
命令参数:参数1 字符串型,表达式

返 回 值:
脚本例子:

(8.x语法)   

复制代码

1.SayString "你好啊"  

2.x = "我很好"    

3.SayString x   

SayString "你好啊"

x = "我很好" 

SayString x 

脚本例子: 

(7.x语法)  

复制代码

1.SayString "你好啊"  

2.x = "我很好"    

3.SayString x   

命令名称:SetSimMode 设置模拟方式

命令功能:设置模拟方式
命令参数:参数1 整数型,设置模拟方式

返 回 值:
脚本例子:

(8.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 "演示结束"  

//模拟方式(0普通|1硬件|2超级)

MessageBox "这个例子会演示 普通/硬件/超级 这三种模拟方式的效果,点击确定后3秒钟开始模拟,会用普通模拟按3下a,硬件模拟按3下b,超级模拟按3下c"

Delay 3000

SetSimMode 0

KeyPress 65,3

MoveTo 0,0

Delay 1000

SetSimMode 1

KeyPress 66,3

MoveTo 100,100

Delay 1000

SetSimMode 2

KeyPress 67,3

MoveTo 200,200

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.   

//模拟方式(0普通|1硬件|2超级)

MessageBox "这个例子会演示 普通/硬件/超级 这三种模拟方式的效果,点击确定后3秒钟开始模拟,会用普通模拟按3下a,硬件模拟按3下b,超级模拟按3下c"

Delay 3000

SetSimMode 0

KeyPress 65,3

MoveTo 0,0

Delay 1000

SetSimMode 1

KeyPress 66,3

MoveTo 100,100

Delay 1000

SetSimMode 2

KeyPress 67,3

MoveTo 200,200

MessageBox "演示结束"

 

命令名称:TracePrint 调试输出

命令功能:在调试窗口打印文字
命令参数:参数1 字符串型,变量名

返 回 值:
脚本例子:

(8.x语法)   

复制代码

1.x=100   

2.//可用于输出变量的值   

3.TracePrint x   

4.//在调试窗口输出变量x的值  

x=100

//可用于输出变量的值

TracePrint x

//在调试窗口输出变量x的值

脚本例子: 

(7.x语法)  

复制代码

1.//可用于输出变量的值   

2.TracePrint x   

3.//在调试窗口输出变量x的值  

//可用于输出变量的值

TracePrint x

//在调试窗口输出变量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开始  

//标准型自定义变量

//格式: UserVar {变量}={默认值} {注释}

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

UserVar var1=30 "当HP<多少%时,使用红药"

UserVar var2=30 "当MP<多少%时,使用蓝药"

//当用户使用这个脚本的时候,可以对这var1和var2这两个变量的取值进行设置

//下拉型自定义变量

//格式: UserVar 变量=DropList{选项0:值0|选项1:值1|选项2:值2}=默认显示的选项编号 {注释}

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

UserVar Var1=DropList{"低于10%时补血":0.1|"低于20%时补血":0.2|"低于30%时补血":0.3}=2 "自动补血设置"

//特别提醒:默认显示的选项编号从0开始

脚本例子: 

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

//标准型自定义变量

//格式: UserVar {变量}={默认值} {注释}

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

UserVar var1=30 当HP<多少%时,使用红药

UserVar var2=30 当MP<多少%时,使用蓝药

//当用户使用这个脚本的时候,可以对这var1和var2这两个变量的取值进行设置

//下拉型自定义变量

//格式: UserVar 变量=DropList{选项0:值0|选项1:值1|选项2:值2}=默认显示的选项编号 {注释}

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

UserVar Var1=DropList{低于10%时补血:0.1|低于20%时补血:0.2|低于30%时补血:0.3}=2 自动补血设置

//特别提醒:默认显示的选项编号从0开始

命令名称: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.   

VBSBegin

    For i=0 to 5

        Msgbox "我在循环运行VBScript块哦!!"

        '这是注释

    Next

VBSEnd

//在VBScript块中可以使用任何VBScript语句(包括VBScript的条件判断、子程序调用等等),也可以使用大多数的按键精灵命令。

例子2:

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

VBSBegin 

    '这是一个注释

    Function name(list)

        msgbox list+1

    End Function

VBSEnd 

//下面是使用过程函数

name 10

 

脚本例子: 

(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=Window.Find("扫雷扫雷")

If hd=0

MessageBox "你应该没有打开扫雷游戏吧?"

Else 

//获得窗口四个角的坐标

Plugin WRect=Window.GetWindowRect(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 Window.SendKeyPress(hd,88)

Delay 10

Plugin Window.SendKeyPress(hd,)

Delay 10

Plugin Window.SendKeyPress(hd,90)

Delay 10

Plugin Window.SendKeyPress(hd,90)

Delay 10

Plugin Window.SendKeyPress(hd,)

Delay 10

Plugin Window.SendKeyPress(hd,16)

Delay 10

Plugin Window.Active(hd)

//雷区最左上角一格的坐标

VBS x0=x(1)+21:y0=x(2)+100

VBS i=0

//用鼠标扫描整个雷区

While iVBS j=0

While jMoveTo 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 Memory.Read()读取某窗体的内存。

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=Window.Find("扫雷扫雷")

If hwnd=0

MessageBox "扫雷游戏没有打开哟!"

EndScript 

EndIf 

//x, y中分别保存当前扫雷的长与宽的格子数量

Dim x, y

Plugin x=Memory.Read32Bit(hwnd,&h1005334)

Plugin y=Memory.Read32Bit(hwnd,&h1005338)

//建个双重循环,循环所有格子,这里用VBScript的循环会很方便,所以加入vbsbegin块

Import Memory.dll

VBSBegin 

Dim i, j, value, strview

strview="说明:@代表安全,*代表雷" & vbcrlf

For i=0 to x-1

For j=0 to y-1

value=Memory.Read8Bit(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("winmine.exe")

//等待扫雷启动完毕

Delay 500

dim hwnd

Plugin hwnd=Window.Find("扫雷扫雷")

//移动扫雷窗口到0,0位置

Plugin Window.Move(hwnd,0,0)

dim winrect, clirect

//获得windows区域

Plugin winrect=Window.GetWindowRect(hwnd)

//获得client区域

Plugin clirect=Window.GetClientRect(hwnd)

MessageBox "窗体工作区:" & winrect & vbcrlf & "窗体客户区:" & clirect

       明白了基本概念之后,下面给出扫雷脚本的鼠标控制例子:

//**********************************

//* 以下例子只支持xp操作系统中扫雷 *

//**********************************

//

//hwnd中保存扫雷游戏的窗体句柄

Dim hwnd

//查找《扫雷》的窗体句柄

Plugin hwnd=Window.Find("扫雷扫雷")

If hwnd=0

MessageBox "扫雷游戏没有打开哟!"

EndScript 

EndIf 

//获取扫雷窗口位置

dim cliectRect

Plugin cliectRect=Window.GetClientRect(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=Memory.Read32Bit(hwnd,&h1005334)

Plugin y=Memory.Read32Bit(hwnd,&h1005338)

//建个双重循环,循环所有格子,这里用VB的循环会很方便,所以加入vbsbegin块

Import Memory.dll

VBSBegin 

Dim i, j, value

For i=0 to x-1

For j=0 to y-1

value=Memory.Read8Bit(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=Window.Find("扫雷扫雷")

If hwnd=0

MessageBox "扫雷游戏没有打开哟!"

EndScript 

EndIf 

//x, y中分别保存当前扫雷的长与宽的格子数量

Dim x, y

Plugin x=Memory.Read32Bit(hwnd,&h1005334)

Plugin y=Memory.Read32Bit(hwnd,&h1005338)

//建个双重循环,循环所有格子,这里用VB的循环会很方便,所以加入vbsbegin块

Import Memory.dll

Import BGKM5.dll

VBSBegin 

Dim i, j, value

For i=0 to x-1

For j=0 to y-1

value=Memory.Read8Bit(hwnd,&h1005360+(j+i*32+1))

'//小于&h80的,都不是雷

If value<&h80& then

//这里的20和60大家体会一下,16是雷格式的间距:)

BGKM5.LClick hwnd,20+j*16,60+i*16

Else

BGKM5.RClick 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 

    If x1>0 and y1>0

    Else 

        [url=file://\\\\MessageBox]\\\\MessageBox[/url] t

        VBS t=t+1

        Goto 1

    EndIf 

EndIf
《蜀门》辅助脚本源码

//现在发一个目前很红的游戏《蜀门》辅助脚本源码,纯颜色版无封号危险,功能很简单,不过简单游上跟这个差不多的也要5块一星期。

//使用时到按键精灵官方网下载个按键精灵安装,打开,新建个脚本,选源文件,把源码帖在里面就好了。在右边下方有设置选项。

Delay 

Plugin ckjb=Window.Foreground()

Plugin ckbk=Window.GetWindowRect(ckjb)

VBS ckbka=split(ckbk,"|")

bkx1=ckbka(0): bky1=ckbka(1): bkx2=ckbka(2): bky2=ckbka(3)

Delay 

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 

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 

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,"e001",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 

    For 2

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

        Delay 

    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 

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

            Delay 32

            VBSCall vas=GetCursorShape(0)

            Delay 32

            If vas=876372781

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

                Gosub 写信息

                Delay 

                RightDown 1

                Delay 16

                RightUp 1

                Delay 

                Goto 捡

            EndIf 

            VBS cci=cci+1

        EndFor 

    EndIf 

    Rem 捡

    Delay 512

    Plugin XY = Color.FindShape(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,35|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 

    If OKX>0

        Delay 

        MoveTo OKX,OKY

        Delay 

        LeftClick 1

    EndIf 

    Delay 

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 

    Plugin Msg.ShowScrTXT(bkx1+300,bky1+4,bkx1+800,bky1+22,xxts,"0000ff")

    Delay 

Return 写信息

Sub 移动一下

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

    Delay 128

    LeftClick 1

    Delay 128

Return 移动一下

Sub 捡查验证

    Delay 16

    Plugin XY = Color.FindShape(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,34|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,10|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 = Color.FindShape(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,34|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,10|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 = Color.FindShape(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,|0|0,66|0|0,68|0|0,70|0|0,72|0|0,74|0|0,76|0|0,78|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,|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,48|4|1,50|4|1,52|4|1,54|4|1,56|4|1,58|4|0,60|4|1,62|4|1,|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,|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 等待

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

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

请看下面哦 VX]9O  

对一些找怪的思路小有体会。简单来说找怪就是找怪与背景不同的独有的特征,可以通过找怪的颜色/图片、怪名字颜色/图片、怪血条颜色/图片、渐开线扫描、小地图找怪等等的方法来实现。具体看游戏而定,下面就介绍几种找怪的方法: .dA-?mrX  

+Jql/^  

1。区域找色 应该说是最简单的找怪方法了,在区域里查找怪的特有颜色、名字颜色、血条颜色、怪的阴影等等。如果找到移动鼠标到怪身上进行攻击 (推荐用区域模糊找色或从区域中间向外找色)。 g`o8@o  

例子(区域模糊找色): Dum;V EF  

-\\4V[(: +  

VBSCall FindColorEx(0,0,1024,768,\\"FFFFFF\\",1,0.8,x,y) -A4j L:@  

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

If x>=0 and y>=0 9{;KgkQq;\\  

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

MoveTo x y J; g80  

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

Delay 50 =^zV(q  

//延时 9qge ]7  

LeftClick 1 o:tpgBv`;  

//左键单击进行攻击 _UukOJv92  

EndIf 4fWJG  

//条件结束 sm~CJCa  

F7R> |M!  

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

xd/4  

-{)qW=?Tz&  

注: z?yj8o; `n  

①。区域范围的定位: 'f~2z

ic  

区域范围指的是被搜索区域的范围,这4个参数分别指的是区域的左,上,右,下。简单的说就是取区域的左上角x,y坐标和右下角的x,y坐标,把这4个数值依次组合起来就是一个区域范围了。 U1 }jv5  

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

顾名思义,这两个变量是用来贮存找色或找图后的坐标。当找到目标后,把目标所在的坐标位置贮存到这两个变量里,然后可以通过判断这两个坐标变量是否在区域范围内来确定是否找到了目标。如果找到目标,贮存的是目标所在的坐标位置。如果没有找到,那贮存的则是-1,所以我们也可以通过 if x=-1 and y=-1 来判断没有找到目标。 RP]BSS4  

Ne7{R<]#  

2。区域找图 在区域里查找怪的图形、怪的名字图片、血条图片等等。语法与区域找色相似,需要注意的是图片的处理,这里有两个教程可以参考一下 教程①,教程②。 9.7WK)Uz  

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

l,s9MhCGi  

例子(区域找图): wlr/vp(_\\  

BTn buVwH  

 w(dJ{L3L  

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

If x>=0 and y>=0 9w{v6,4  

//如果坐标在区域内(找到图片) I2,[0TP#  

MoveTo x y u-gsC?

N+8  

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

Delay 50  2Bx02E  

//延时 DFPppu  

LeftClick 1 6|K|,_VlU  

//左键单击 =jvi7:9x  

EndIf ^kNjMI\\|k  

//条件结束 h0Z;"}3  

'zG=em?A  

BV,u F~0{G  

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

i$WV<'i9  

z_&aJ3u  

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

VBS dim x0,n,y0,x,color0,color co/a!\\86G  

//声明变量 ]9xNuL9  

Rem start 2X{,W6?T  

//标记渐开线找怪开始 56/r9$RSC  

VBS x0=400:n=1:y0=300:x=400 HBmut(2I  

//变量初始化 IE)|q3Dy+  

While x<800 AL0qt//限定横坐标范围不超过800 1}yUj~IL N  

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

//根据渐开线公式计算下一个点的横坐标并赋值给x p"8Kdm,>  

VBS y=y0+3*(sin(n)-n*cos(n)) J V}@o  

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

VBSCall color0=GetPixelColor(x,y) &(2h"lrm  

//在鼠标移动之前,获取目标点色值并赋值给color0 M}=]+SPd/  

VBSCall Call SetCursorPos(x,y) 9>:ZG^'  

//马上移动鼠标到目标点 N-jf  

VBSCall color=GetPixelColor(x,y) 4VMe5CE9  

//获取鼠标移动后该点色值并赋值给color hF]+ `B  

If color<>color0 % .+Z#  

//同一点取得的两次色值比较,不同,则执行以下的打怪脚本 p$%]9^.~  

LeftClick 1 7Xpdo#oA/  

//左键单击 "UP2HpRR  

Delay 3000 L< ~O#//打怪延时 62i"Pj>jWl  

EndIf #By GobO%  

//该点判断结束 F|&+dBoQN  

Delay 10 :]ux]tG(#  

//循环延时 ]2Ek&A   

VBS n=n+0.2 i&l}!0  

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

EndFor q/,?18{\\  

//一次渐开线取点判断结束 zFq"Zbf!  

Goto start c//跳转到开始,重复渐开线搜索 $ [s%|x'7  

n LLo#  

5。小地图找怪 公式:大地图怪坐标 = (小地图怪坐标 - 小地图人物坐标) * 比例 + 大地图人物坐标 (0NY}U`8  

.ZF"Pg! m  

比例是(大地图怪坐标和大地图人物坐标之间的距离)与(小地图怪坐标和小地图人物坐标之间的距离)这两者的比例。如下图 A线与B线的比例。用小地图找怪所需的计算数据必须比较准确。 }i`M!BAc  

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

下载 (340.32 KB) 4%m?uY%9  

yiThQcd@  

2007-6-24 18:34 y}

-"  

) =8f;  

例子(小地图找怪): MhAedgA_  

R x\m^2  

VBSCall FindCenterColor(858,66,996,192,\\"0000FF\\",x,y) "SU-WNfH|  

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

If x>=0 and y>=0 PcBAL%DM  

//如果找到颜色 < @V^4?L^  

x0=(x-926)*10+512 *k@C4)SsP{  

y0=(y-129)*10+3 z4Q5=[-#J(  

//计算大地图怪的坐标 \\P&

9  

MoveTo x0 y0 74tCg?e  

//移动到大地图怪的坐标 Ayn3#: J  

Delay 50 y%?vG{]W~  

//延时 :@-yDz%  

LeftClick 1 Sk Lv3d!  

//左键单击进行攻击 fxgRih  

EndIf f3J! c){  

//条件结束 ZZ5o0+}>L  

;X>Atv /iA

4x8e  

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

v*cByj*=i  

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

文档

按键精灵脚本命令大全及举例说明

按键精灵常用命令与示范例子目录如下一、键盘命令(2~5页)二、鼠标命令(5~13页)三、控制命令(13~22页)四、颜色/图像命令(22~28页)五、其他命令(28~35页)五、网游脚本实例(35~最后)一、键盘命令命令名称:GetLastKey检测上次按键命令功能:检测上次按键命令参数:参数1整数型,可选:变量名返回值:无脚本例子:(8.x语法)  复制代码1.//脚本运行到这一行不会暂停,调用的时候立即返回,得到调用之前最后一次按下的按键码保存在变量Key里。  2.Key=GetLast
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top