零基础学按键精灵(第一章)
- 格式:doc
- 大小:50.00 KB
- 文档页数:6
按键精灵教程按键精灵的教程,帮助您学习如何使用该工具1.
下载安装首先
以下是按键精灵的教程,帮助您学习如何使用该工具:
1. 下载安装:首先需要从官方网站或其他可靠的网站下载按键精灵软件,然后按照提示和安装向导安装到电脑上。
2. 基本界面和功能:学习按键精灵的基本界面和功能,从而快速了解该工具的操作和使用方式。
3. 录制宏:按键精灵最大的特点就是宏录制功能,可以将一系列的命令和操作录制下来,然后再次使用时,只需补充输入需要更改的变量即可。
学习如何录制一个宏后,让其在某些条件下自动触发。
4. 宏脚本编辑:对于一些复杂的宏脚本,我们可以通过编辑器对其进行编辑,让其更加智能。
5. 学习按键精灵脚本语言:按键精灵脚本语言也是一个重要的学习点,在掌握其基本语法规则和常用命令的基础上,能够让使用更加精准。
6. 常用功能:按键精灵还有很多其他的功能,如窗口控制、文件操作、日期时间等。
学习这些功能,能够使按键精灵更加多样化和可玩性。
7. 练习和应用:通过对按键精灵的学习和练习,掌握并运用其各种功能和技巧,能够提升工作效率和质量,让整个工作流程变得更加智能和便捷。
通过按键精灵的学习和应用,能够大大提高工作效率和质量,以及简化工作流程,达到省时、省力的效果。
程序结构介绍此文为小妖首发于按键精灵论坛。
借百度平台转发,希望能够帮到学按键的朋友。
当然,我自己也是一个新手,只不过,我能看一点代码,做点帮助自己的减少工作量的脚本。
也达不到那些大神们,对API、dos(貌似有更多东西,可惜我只知道这些)等等理解深刻理解的大神那样,做到自己写代码优化脚本。
我只能站在这些大神们做好的东西上,去做一些自己喜欢做的事。
估计很多人和我当初一样迷茫。
看着按键的教程,学按键教程里面录制、跳转标记、找色、找图、找字。
然后弄出个满是goto。
的脚本。
最后自己都不知道脚本写的是什么。
一开始就学补血、补篮、找图打怪。
不仅弄出来的脚本,自己糊涂,给别人看,别人都糊涂。
那怎么徐徐渐进呢?个人理解来说,我们应该从小到大。
实际上,按键是基于VBS开发出来的(不知道这句话对不对,反正就是类似VB。
)。
一个脚本,基本上都遵循着程序结构来写的。
这儿介绍3种基本的程序结构:1. 顺序结构。
顺序结构就是按照运行顺序决定。
比如:1.TracePrint "第一次" //调试显示“第一次”2.TracePrint "第二次" //调试显示“第二次”3.TracePrint "第三次" //调试显示“第三次”这段代码,就是依次显示第一次第二次第三次。
一条一条的运行,一条一条的显示。
当然,这儿你完全可以单步调试来查看运行顺序。
2.选择结构。
选择结构是判断一个值,是否为真,为真的话怎么样,为假的话怎么样。
比如:1.If 1 = 1 Then //判断 1=1 是否成立2. TracePrint "真的相等" //成立则调试显示真的相等3. Else //如果不成立4. TracePrint "不相等" //不成立则显示不相等5.End if //判断语句结束这段代码,第一句的时候,就在做判断,是否相等,相等就执行紧接着的那条,不相等的话,就执行Else 后面的那条。
手把手教你用“按键精灵”图文教程类型:转载按键精灵是一个可以模拟电脑操作的软件,您在电脑上的一切动作都可以让按键精灵模拟执行,完全解放您的双手。
按键精灵可以帮你操作电脑,不需要任何编程知识就可以作出功能强大的脚本。
如果你还为一些枯燥、繁琐的电脑操作而烦恼,按键精灵绝对会是你最好的帮手。
那么,按键精灵具体能帮我们干什么呢?我们来列举几个例子来说明下。
* 网络游戏中可作脚本实现自动打怪,自动补血,自动说话等;* 办公族可用它自动处理表格、文档,自动收发邮件等;* 任何你觉得“有点烦”的电脑操作都可以替你完成。
按键精灵第一个实现了“动动鼠标就可以制作出脚本”的功能。
我们不希望为了使用一个小软件而去学习编程知识,考虑到这些,所以按键精灵完全界面操作就可以制作脚本。
按键精灵的脚本是纯粹的TXT文件,即使是目前新增了插件功能,也引入了数字签名的机制。
因此我们可以放心的使用网站上的脚本而不用担心会有病毒。
脚本就是一系列可以反复执行的命令.通过一些判断条件,可以让这些命令具有一定的智能效果.我们可以通过”录制”功能制作简单的脚本,还可通过”脚本编辑器”制作更加智能的脚本.今天我们就通过录制一个最简单的脚本,来手把手的教大家使用按键精灵。
上网一族一般开机后会先看看自己邮箱,或者看看自己博客;每天如此,可能都有些烦了。
现在好了,把这些繁杂的事情交给按键精灵吧。
今天我们就来录制一个自动登录博客,并对整个页面进行浏览的脚本。
首先,我们打开“按键精灵”。
其运行界面如下(图1):图1 运行界面打开软件后点击工具栏上“新建”项(如图2);之后进入“脚本编译器”界面(如图3)。
现在就可以正式开始编译脚本了。
图2 新建图3 脚本编译器界面在脚本编译器界面上,左键点击工具栏上“录制”项,会出现这样的情况:进入桌面,并出现一个小的对话框(如图4)。
图4 录制在这个小的对话框中,左侧红色圆按钮是录制的开始,第二个蓝色方按钮是录制结束,第三个是存储录制内容。
[KeyPress]格式: KeyPress {键盘虚拟码} {次数}解释:先“按下”再“弹起”键,模拟我们平时的“按键”操作.我们在使用键盘的时候有两种操作,一种是”按下”键,一种是”弹起”键.将这两个动作连续进行,就是一个完整的”按键”动作.按键精灵可以模拟所有的键盘动作.[KeyDown]格式: KeyDown {键盘虚拟码} {次数}解释: “按下”键,模拟我们平时的“按下”操作注意:有些键在按下之后,会和其他键产生组合效果,比如“Alt/Ctrl/Shift”,如果使用“按下Alt”命令,那么之后的“按键”动作将变成“Alt+A”等组合动作,因此记得在必要时使用“弹起”命令将组合键释放,避免影响键盘的正常使用.[KeyUp]格式: KeyUp {键盘虚拟码} {次数}解释:“弹起”键,模拟我们平时的“弹起”操作[KeyPressH]格式: KeyPressH {键盘虚拟码} {次数}解释: 硬件模拟按键,与KeyPress功能类似,先“按下”再“弹起”键,但采取了硬件模拟的方式在某些情况下普通模拟按键命令会失效,不妨试试硬件模拟命令[KeyDownH]格式: KeyDownH {键盘虚拟码} {次数}解释: 硬件模拟按下,与KeyDown功能类似,“按下”键,但采取了硬件模拟的方式在某些情况下普通模拟按键命令会失效,不妨试试硬件模拟命令[KeyUpH]格式: KeyUpH {键盘虚拟码} {次数}解释: 硬件模拟弹起,与KeyUp功能类似,“弹起”键,但采取了硬件模拟的方式在某些情况下普通模拟按键命令会失效,不妨试试硬件模拟命令[LeftClick]格式:LeftClick {次数}解释:在鼠标当前位置模拟点击鼠标左键.{次数}可以控制点击的次数[RightClick]格式:RightClick {次数}解释:在鼠标当前位置模拟点击鼠标右键.[MiddleClick]格式:MiddleClick {次数}解释:在鼠标当前位置模拟点击鼠标中键.[LeftDoubleClick]格式:LeftDoubleClick {次数}解释:在鼠标当前位置模拟双击鼠标左键.[LeftDown]格式:LeftDown {次数}解释:在鼠标当前位置模拟按下鼠标左键,{次数}在这个语句中虽然有效,但没有实际意义.[LeftUp]格式:LeftUp {次数}解释:在鼠标当前位置模拟松开鼠标左键,{次数}在这个语句中虽然有效,但没有实际意义.[RightDown]格式:RightDown {次数}解释:在鼠标当前位置模拟按下鼠标右键,{次数}在这个语句中虽然有效,但没有实际意义.[RightUp]格式:RightUp {次数}解释:在鼠标当前位置模拟松开鼠标右键,{次数}在这个语句中虽然有效,但没有实际意义[LeftClickH]格式:LeftClickH {次数}解释:使用硬件模拟方式,在鼠标当前位置模拟点击鼠标左键.{次数}可以控制点击的次数在某些情况下普通模拟鼠标命令会失效,不妨试试硬件模拟命令[RightClickH]格式:RightClickH {次数}解释:使用硬件模拟方式,在鼠标当前位置模拟点击鼠标右键.在某些情况下普通模拟鼠标命令会失效,不妨试试硬件模拟命令[MiddleClickH]格式:MiddleClickH {次数}解释:使用硬件模拟方式,在鼠标当前位置模拟点击鼠标中键.在某些情况下普通模拟鼠标命令会失效,不妨试试硬件模拟命令[LeftDoubleClickH]格式:LeftDoubleClickH {次数}解释:使用硬件模拟方式,在鼠标当前位置模拟双击鼠标左键.在某些情况下普通模拟鼠标命令会失效,不妨试试硬件模拟命令[LeftDownH]格式:LeftDownH {次数}解释:使用硬件模拟方式,在鼠标当前位置模拟按下鼠标左键,{次数}在这个语句中虽然有效,但没有实际意义.在某些情况下普通模拟鼠标命令会失效,不妨试试硬件模拟命令[LeftUpH]格式:LeftUpH {次数}解释:使用硬件模拟方式,在鼠标当前位置模拟松开鼠标左键,{次数}在这个语句中虽然有效,但没有实际意义.在某些情况下普通模拟鼠标命令会失效,不妨试试硬件模拟命令[RightDownH]格式:RightDownH {次数}解释:使用硬件模拟方式,在鼠标当前位置模拟按下鼠标右键,{次数}在这个语句中虽然有效,但没有实际意义.在某些情况下普通模拟鼠标命令会失效,不妨试试硬件模拟命令[RightUpH]格式:RightUpH {次数}解释:使用硬件模拟方式,在鼠标当前位置模拟松开鼠标右键,{次数}在这个语句中虽然有效,但没有实际意义在某些情况下普通模拟鼠标命令会失效,不妨试试硬件模拟命令[MoveTo]格式:MoveTo {X坐标} {Y坐标}解释:移动鼠标到(X坐标,Y坐标)处举例:MoveTo 100 200把鼠标移动到(100,200)这个点上MoveTo intX intY把鼠标移动到(intX,intY)这个点上,需要5.50以上版本支持.[MoveR]格式:MoveR {X距离} {Y距离}解释:把鼠标相对移动(X距离,Y距离)举例:当前鼠标在(100,100)点,使用下面语句MoveR 200 300之后,鼠标就被移到了(100+200,100+300)处,也就是坐标(300,400)处[MoveRH]格式:MoveR {X距离} {Y距离}解释:相对移动鼠标的硬件模拟指令把鼠标相对移动,(X距离,Y距离)[SaveMousePos]格式:SaveMousePos解释:保存当前鼠标位置[RestoreMousePos]格式: RestoreMousePos解释: 将鼠标移动到上一次保存的鼠标位置举例:保存/恢复鼠标位置常用于制作网络游戏练功脚本,脚本开始时保存鼠标位置,脚本结束时恢复鼠标位置,这样脚本执行后鼠标的位置就不会变化[LockMouse]格式: LockMouse解释: 锁定鼠标位置,用户将不能通过移动鼠标而改变鼠标位置,而脚本仍可以改变鼠标位置举例: 在脚本开始的时候使用这个命令,可以有效防止用户误触鼠标引起脚本执行出错[UnlockMouse]格式: UnlockMouse解释: 解除LockMouse命令对鼠标位置的锁定。
按键精灵学习教程按键精灵学习教程一、1、子程序和函数调用演示//<>---------------------------------------------子程序调用Call 普通子程序()Call 代入参数的子程序(100,50)//<>---------------------------------------------函数调用Msgbox 代入参数的函数(100,50)Sub 普通子程序()Msgbox "我是普通子程序,被调用了"End SubSub 代入参数的子程序(a,b)c=a+bMsgbox "我是代入参数的子程序,被调用了。
结果值为:" & c End SubFunction 代入参数的函数(a,b)c=a*b代入参数的函数= "我是代入参数的函数,被调用了。
结果值为:" & c End Function2、重启脚本运行演示For i=0 to 2Delay 1000Call Plugin.Msg.ShowScrTXT(0, 0, 1024, 768, "屏幕内容填写" & i, "0000FF") NextRestartScript //重新启动脚本运行3、中文名变量演示//<>---------------------------------------------用户自定义变量支持中文名为变量名UserVar 启动=DropList{"打开":1|"关闭":0}=0 "补血启动开关"UserVar 补血=0 "补血百分比%"//<>---------------------------------------------定义变量支持中文名为变量名Dim 提示提示="补血启动开关未设置打开!"If 启动=1 ThenMsgbox "补血百分比为:"& 补血& "%"ElseMsgbox 提示End If4、选择条件结构演示UserVar 变量=0 "输入(0~9)数字"//<>---------------------------------------------以下是选择条件结结构判断Select Case 变量Case 0Msgbox "你输入的数字为:0"Case 1Msgbox "你输入的数字为:1"Case 2Msgbox "你输入的数字为:2"Case 3Msgbox "你输入的数字为:3"Case ElseMsgbox "你输入的数字不正确,请输入(0~3)数字!"End Select5、下拉型用户自定义//说明:{}当中是下拉的选项=0是指的默认显示哪个选项(从0开始)UserVar Var1=DropList{"低于10%时补血":"0.1"|"低于20%时补血":"0.2"|"低于30%时补血":"0.3"}=2 "自动补血设置"UserVar Var2=0 "普通自定义变量"MessageBox(Var1)MessageBox(Var2)6、退出脚本运行演示7、Shape1 = 1593350287//下面是我们访问网页超链接时候的手型鼠标形状Shape2 = 1055991329Shape=GetCursorShape(0)If shape = shape1 thenMessageBox "当前鼠标形状是普通的WINDOWS鼠标" ElseIf shape = shape2 thenMessageBox "当前鼠标形状是手型鼠标"ElseMessageBox "不认识当前鼠标形状!"End If8、日志信息记录演示//<>---------------------------------开始记录日志LogStart "C:\a.log"For i = 0 To 3//<>---------------------------------以下“TracePrint”输出信息内容将被记录为日志TracePrint "屏幕内容填写" & iCall Plugin.Msg.ShowScrTXT(0, 0, 600, 300, "屏幕内容填写" & i, "0000FF") Next//<>---------------------------------记录日志停止LogStop//<>---------------------------------日志停止了,下一句“TracePrint”输出信息不会被记录TracePrint "这句不会输出!"If MsgBox("日志记录完成!是否打开查看内容?",4,"提示:") = 6 Then //存放在C盘,下面会帮你打开查看RunApp "notepad.exe C:\a.log"End If。
[教程]冷血课堂1--如何通过读取颜色来“认识”数字?记得很久以前曾经跟兄弟论坛上的一个朋友说过,猎手确实就是一个读颜色的脚本,根本没有涉及读取内存。
不是按键精灵不支持读取内存地址(按键精灵从内存地址中读取一个数字,还是很简单的,一条命令就可以实现),也不是说游戏中的数值多么难以得到,以热血江湖为例,那些常用数值的地址,全是固定地址,要找到那些地址,实在是太简单了,相对于那些采取“动态地址”的网络游戏,寻找热血江湖的地址就是小儿科了。
当然,这不是本文的重点,今天,我不是来教大家找地址的,而是教大家如何通过另外一种方法得到游戏中我们需要的“数值”,那就是通过读取屏幕上的颜色。
猎手为什么要写成一个纯颜色挂,这跟热血江湖这个网络游戏有关。
热血在刚推出来的时候,反外挂的措施是很严厉的,那时候别说什么真正的修改游戏客户端、拦截游戏封包的外挂,就是使用按键精灵的脚本,也存在被封号的危险。
为了保证脚本的有效性--别一出来就被列为打击的对象啊--猎手采取了纯颜色的脚本思路,绝对不涉及内存数据的读取与修改。
它不修改任何内存数据,仅仅靠读取屏幕上各种颜色,达到挂机、解放双手的目的。
当然了,现在的热血江湖,外挂满天飞,BUG满天飞,使用热血嘉年华、热血超辅、热血智辅的比比皆是,不过我也知道,免费的猎手仍然有一定的市场,不过由于很多号级别都很高了,原版猎手不支持垃圾石头过滤,导致经常仓库满而停挂,也有一些人不用猎手改用别的去了。
我也注意到,有些朋友使用插件而实现了垃圾石头过滤,不过,猎手当时已经留下了过滤垃圾石头的“种子”,所以我来说一说,不使用任何读字插件,依照猎手以前的脚本思路继续写下去,来完成垃圾石头过滤的功能。
在正式开讲之前,冷血先作几点说明:1,这里讲的,是脚本写作的“技术性”问题,而不是现成的脚本,我希望你看完本帖之后,能解开你心中的疑惑:凭什么只读颜色就能识别数字呢?2,如果自认为是高手,就不要看此帖子了;如果不想学脚本的编程思路,只要现成的脚本,也不必看此帖子,更不必回帖了。
基础教程- 第1课:概述概述本节作为入门级的第一课,将教晓怎么才能编写出优秀的脚本。
也可理解为学习过程。
并尽量简单的说明整个学习过程。
编程初学者常犯的毛病,是希望在尽短时间内,就可以编写出强大功能的软件。
学习编程到可以编写出有用,并且功能还不错的软件,是个长期艰苦的学习过程。
需要付出大量的努力与时间。
没有一掘而就的捷径。
幸好,我们只学按键精灵,不用接触涉及编程中繁杂的方方面面。
也希望按键爱好者以本教程做为编程入门,初窥编程大门。
第一次学写教程类的文字,不足之处,多多指点。
本教程针对读者群为:对按键精灵有一定了解,可以使用按键精灵提供的基础指令来实现简单的机械操作。
如果你是刚刚接触按键精灵,并不了解他有何基础功能的朋友,可以参看由“兄弟工作组”制作的“知识库”。
可在按键精灵官方网站查看。
导读:本教程分三部分。
第一部分,前6节为按键精灵的基础知识。
第二部分,从7节起,在大量的小例子面前,争取把基础知识融会贯通。
第三部分,搜集整理大量实用或复杂的脚本,讲解按键精灵的高级应用技巧。
基础教程- 第2课:零编程学会补红蓝脚本的制作补红蓝脚本的制作我们应该知道,按键精灵拥有一双眼睛,一双手,眼睛可以帮我们查看屏幕上的颜色,而手可以帮我们不断的点击键盘鼠标。
相信多数的朋友对于这双手的操控已经灵活自如了,而要编写出功能强大的脚本,没有眼睛可不行。
本教程以此出发,教会读者使用这双眼睛,更好的控制机器人的手臂。
本章用到的按键精灵基础命令:1、1.IfColor 100,10,112233,02.EndIfIfColor做为按键精灵最重要的颜色判断语句(眼睛),有着良好的易用性与理解性。
语句详细解释:ifColor - 如果颜色100 - 屏幕X象素10 - 屏幕Y象素112233 - 16位进制的颜色(以两位为一种颜色分别代表蓝、红、黄)0 - 相等(1为不相等。
2为模糊匹配)解释:如果在坐标100,10的颜色为112233则执行。
按键精灵可以帮你操作电脑。
不需要任何编程知识就可以作出功能强大的脚本。
只要您在电脑前用双手可以完成的动作,按键精灵都可以替您完成。
按键精灵官方网站是:/cn/qmacro从编程的角度看,集合一些插件的脚本编辑、调试工具。
代码不公开。
生成的小精灵,模式化界面,界面中有广告,以此盈利。
使用环境操作系统:Windows 98/98SE/Me/2000/XP/2003/Vista软件支持:支持绝大多数软件,部分网络游戏中可能失效,但可尝试"神盾"功能,提高按键精灵的兼容性按键精灵能帮我做什么?* 网络游戏中可作脚本实现自动打怪,自动补血,自动说话等* 办公族可用它自动处理表格、文档,自动收发邮件等* 任何你觉得“有点烦”的电脑操作都可以替你完成上手指南按键精灵是一个容易上手,但精通较难的软件。
第一次接触它,自然会希望尽快熟悉它,让它为您工作。
但如何上手呢?我来提供一些技巧1、试:提供了免费试用,下载试用版安装后就可体验自带的例子。
2、学:上网看按键宝典,教程、实例统统都有,不懂还可上论坛提问。
3、用:边用边学,作出自己第一个脚本,你就入门啦~4、精:操作电脑的不便,都用脚本来解决,你的脚本也可以越来越聪明!什么是脚本?脚本就是一系列可以反复执行的命令.通过一些判断条件,可以让这些命令具有一定的智能效果.如何制作脚本?初学者可以通过”录制”功能制作简单的脚本,还可通过”脚本编辑器”制作更加智能的脚本.如何使用脚本?使用步骤如下:1. 制作脚本:按照个人需求从网上搜集脚本或者自己制作脚本。
如果您的脚本是从别的地方收集的,请先把脚本文件拷贝到按键精灵文件夹下的script文件夹中,然后再运行按键精灵。
2.选择有效的窗口:建议您选择“对所有窗口有效”。
如果您只需要脚本当某个窗口在前台时有效,请选择窗口名称,比如“龙族”3.让需要执行的脚本“有效”,只有“有效”一栏中勾中的脚本才会执行。
4.进入游戏(或者其他需要使用按键精灵的软件),在需要使用脚本的时候按下脚本的“快捷键”,按键精灵就会忠实的为您工作了。
第一章变量的使用不论是在VBScript 的程序或任何其他的程序语言中,有一个最重要的也是最基本的概念叫做变量,因为写程序的目的在于,写出的程序在大部分的情况都可以执行出正确的结果。
就如同一个卖篮球鞋的厂商出了一双又好看又耐穿的球鞋,但是这款球鞋只有唯一的一个尺寸,如此一来,就算鞋子再好,消费群也只是那一小部分人。
程序也是一样的,好的程序就必须给程序使用者多一点弹性,程序才能发挥它最大的用处。
想做到这一点,就必须使用变量来编写程序了。
那变量到底是用来做什么的呢?简单说,变量就是用来存储某些信息,有可能是存储一些计算结果、人的姓名、字符串输入的正确性等等。
每当程序使用了一个变量,程序就会吧资料写到计算机的内存中,等程序需要它的时候就可以从内存中拿出来使用了,这就是变量最常被使用的方法。
本章重点介绍如何在VBScript 中声明及应用变量。
一变量的声明既然变量很重要,那就先来看看要如何产生一个变量。
变量的命名要遵守下列几个规则。
■ 开头必须是一个字母。
■ 要在255 个字符之内,这一点不需要太担心,如果一个变量名字长达255个字符的话,相信没几个人能自己记得住。
■ 可以使用任何字符、数字及下划线,但是不可以使用空格。
■ 不可以使用VBScript 会用到的运算符号,例如+ 、- 、* 、/ 等。
■ 不可以使用VBScript 中使用到的保留字,例如MID 、DIV 等。
由于VBScript 是由Microsoft 发展出来的语言,所以它的命名的规则还是遵照它一贯的设置,变量的名称是没有大小写之分的,例如:变量名MyClass 和变量名myclass 是一样的。
要在VBScript 中声明一个变量,方法是利用Dim 指令,在这个函数后面加上一个符合变量命名规则的名称,就等于建立了一个新的变量,例如:Dim customers在VBScript 中,变量的产生分为两种,一种就是用Dim 声明,另外一种就是直接给变量赋值,如此变量自然就存在了。
按键精灵的原理和编写方法(1)按键精灵的原理和编写方法(1)2009-08-14 16:27:40| 分类:默认分类 |字号订阅按键精灵是一类很普遍的游戏插件,wow raid过程中部分职业的某些操作就需要此类插件(文俊的牧师号在打某些BOSS时驱散用到过)。
类似的插件无非是用程序来模拟重复性的键盘动作。
游戏中进行键盘操作的程序可以理解为:按下某键——键盘驱动程序将此事件传递给操作系统——操作系统将此事件插入消息队列——此消息被发送到当前活动窗口。
按照这个过程来理解程序,剩下的只不过要将抽象化的语句翻译成代码。
当然很多过程编程工具(.NET)会自动处理,而不需你去理会。
(如如何插入消息队列,消息队列的管理,无用对象的释放)。
第一个问题,按下如何用程序来模拟在键盘上按下某键。
日常操作中,当用户在键盘上按下某个按键时,键盘内芯片会检测到这个动作,并将这个信号传递给计算机。
对于每个按键,键盘分配给它不同的编码,称做键盘扫描码。
当敲击键盘时,底层上实际传递给计算机消息队列的是该按键的键盘扫描码,所以知道了欲按键的扫描码,就可以将该信息传递给电脑,从而达到模拟按键的功能。
第二个问题,键盘驱动程序如何把此事件传递给操作系统。
解决第一个问题的关键是必须知道按键的键盘扫描码,但是仅仅知道键盘扫描码不够。
因为操作系统需要得到的信息的并不是键盘扫描码。
因为键盘扫描码是跟具体的硬件相关的,同一个键在不同键盘上的扫描码有可能不同。
键盘控制器将这个扫描码传给计算机,然后交给键盘驱动程序。
键盘驱动程序会完成相关的工作,并把这个扫描码转换为键盘虚拟码。
键盘虚拟码是针对键盘扫描码的非通用性所提出。
尽管出于硬件原因,同一个按键可能有不同的扫描码,但是无论什么键盘,同一个按键的虚拟码总是相同的,这样程序就可以识别了。
简单点说,虚拟码就是我们经常可以看到的像VK_A,VK_B这样的常数,比如键a的虚拟码(字母大小写虽然是同一个键,但是虚拟码不同)是&H61(即十进制的97,一般用16进制来表示虚拟码)。
按键精灵文档简介:基本信息→基本介绍→使用说明→软件功能→软件特点→使用方法→更新日志→常见问题→安全认证按键精灵:按键精灵是一个模拟鼠标键盘动作的软件。
通过制作脚本,可以让按键精灵代替双手,自动执行一系列鼠标键盘动作。
按键精灵简单易用,不需要任何编程知识就可以作出功能强大的脚本。
只要在电脑前用双手可以完成的动作,按键精灵都可以替代完成.按键精灵基本信息:软件版本:按键精灵(Quick Macro) 9.0版软件大小: 7.93MB更新时间: 2011-08-11软件类别:国产软件 / 键盘鼠标软件语言:简体中文 / 繁体中文应用平台: Win9x/Win2000/WinXP/WinVista/Win7软件性质:免费软件开发商:兄弟工作组按键精灵会员注册:按键精灵基本介绍:按键精灵可以帮你操作电脑。
类似于按键精灵的软件有 "按键游侠","super-ec"等。
从编程的角度看,集合一些插件的脚本编辑、调试工具。
代码不公开。
生成的小精灵,模式化界面,界面中有广告,以此盈利软件功能:1.网络游戏中可作脚本实现自动打怪,自动补血,自动说话等;2.办公族可用它自动处理表格、文档,按键精灵自动收发邮件等3.任何觉得“有点烦”的电脑操作都可以替完成。
按键精灵软件特点:1.操作简单,非常容易上手;2.功能强大,脚本语句丰富;3.界面友好,使用鼠标就可以完成大部分脚本的制作动作4.兼容性好,支持大部分Windows下的软件5.拥有“神盾”保护功能。
按键精灵使用方法:第一步:设计脚本功能按键精灵写脚本之前要想清楚自己要做什么功能。
在这里来制作一个每隔5秒自动按F5刷新网页的脚本。
第二步:设计脚本为制作了组图来说明如何制作这个脚本。
做任何脚本都是两步:第一步先设计功能,第二步就是用按键精灵提供的命令完成这些功能。
常见问题:什么是脚本?脚本就是一系列可以反复执行的命令.通过一些判断条件,可以让这些命令具有一定的智能效果.按键精灵软件如何制作脚本?初学者可以通过”录制”功能制作简单的脚本,还可通过”脚本编辑器”制作更加智能的脚本.按键精灵软件如何使用脚本?使用步骤如下:1.制作脚本:按照个人需求从网上搜集脚本或者自己制作脚本。
[命令]按键精灵常用功能-详细解说[1]-键盘动作按键精灵常用功能-解说[版本5.0以上]首先-启动按键精灵-看到主程序界面的“小灯泡”增加按钮了吗?点击它...然后-这样就新建了一个脚本,并进入了脚本编辑器界面。
(具体参见Qmacro基础资料/cn/qmacro/)按键精灵常用功能-详细解说[1]-键盘动作-4个功能(1)单个按键的模拟-模拟键盘的单个按键动作,可以是按1下、按住不动、弹起来等3种形式,可以根据自己的需要,设定执行次数。
(2)按键组合的模拟-模拟按键组合,比如ctrl+shift+G之类的,但是不能G+H 这样子哦,那要需要的时候怎么模拟G+H呢?使用(1)功能-按下G,再按下H,就等于G+H了嘛~~~(不同步?哦,计算机的反映速度是很快的!)(3)脚本暂停按任意键继续功能-这里可以设置一个变量,用来表示可能是哪个按键,比如设置了变量key,当key这个变量变动的时候...比如key=49的时候,表示按1就能使脚本继续...那么怎么知道哪个数字对应是哪个按键?请看(4)的功能。
(4)得到按键码-在左边的空白输入一个按键,右边就显示出相应的按键码哦。
有一些特殊的按键码是多少呢?可以去下载个ASCII码表看看。
举例:打开一个记事本,光标停空白处,按1下你设定的快捷键开始执行你设计的脚本... Rem rem只是注释语句,可以做标记或解释用途。
Rem rem这一行,不会有功能,比如:KeyPress 49 10Rem 按1键10次,换行KeyPress 49 10KeyPress 13 1Rem 按下1键不动,2秒后弹起,换行KeyDown 49 1Rem 延时2000毫秒Delay 2000KeyUp 49 1KeyPress 13 1Rem 按shift+1组合键,换行KeyDown 16 1KeyPress 49 1KeyUp 16 1KeyPress 13 1Rem 提示后,等待任意键继续SayExpression "请按任意键继续吧。
按键精灵脚本教程
按键精灵是一款功能强大的自动化软件,可以帮助用户完成重复性的操作任务。
通过编写脚本,可以将按键精灵的功能发挥到极致。
本教程将为您详细介绍按键精灵脚本的基本语法和常用操作,以帮助您更好地使用按键精灵。
一、脚本语法
按键精灵脚本采用类似于VBScript的语法,非常简洁易懂。
以下是脚本的基本语法:
1. 注释:使用单引号(')进行注释,注释内容会被忽略。
例如:
' 这是一个注释
2. 变量定义:使用Dim关键字定义变量。
例如:
Dim num
3. 赋值语句:使用等号(=)进行赋值。
例如:
num = 10
4. 循环语句:使用For循环来执行重复操作。
例如:
For i = 1 to 10
' 这里是重复执行的操作
Next
5. 条件语句:使用If语句进行条件判断。
例如:
If num > 0 Then
' 符合条件时执行的操作
End If
6. 函数调用:使用Call关键字进行函数调用。
例如:
Call MyFunction()
二、脚本操作
按键精灵脚本可以实现很多功能,以下是一些常用的操作:1. 按键:使用按键精灵内置的按键函数来模拟按键操作。
例如:
Call keyDown(\。
键盘命令键盘命令就是用于模拟键盘操作的各种命令。
键盘命令面板是按键精灵提供给用户直接插入键盘命令的一个区域。
在这里你可以通过配置不同的设置项然后点击插入,将命令插入到脚本视图中去。
图:键盘命令面板一、按键在这里只要按下你想要按键,然后设置好动作类型,最后设置好执行的次数即可插入一段按键的语句。
输入你打算让按键精灵操作的键盘按钮,显示的时候都是大写的。
类型:分为“按键”、“按住”、“弹起”三个部分。
按键:模拟把按键输入框内的按键按下之后接着弹起后的动作。
这是最常见的按键操作方法,比如我们打字的时候就不断地重复按键这个动作。
按住:模拟把按键输入框内的按键按下后不放的动作,比如我们要用键盘切换输入法的时候就要可按住一个Ctrl键再按Shift键。
弹起:这个选项与“按住”选项配合使用,也就是说按住了按钮后一定要让他弹起来,否则被按下的按键将一直保持按下的状态。
这样的后果是会出现一些奇怪的现象。
执行次数:就是操作多少次。
按键组合:要想输入如Ctrl+C这样的组合按键,就到这里来设置。
二、工作方式特殊需求的用户可选择此项,否则保持默认值。
从7.X版上增设[设定模拟方式]命令来解决整个脚本的模拟方式,不需要一个个去替换硬件模拟:通过硬件模拟按键,解决某些软件不支持软件模拟的问题。
注意:目前不支持USB 设备。
超级模拟:通过驱动模拟按键,解决某些软件不支持软件模拟的问题。
注意:支持USB设备。
三、检测输入功能脚本暂停,按任意键继续:脚本在插入点暂停,直到脚本使用者按下任意的一个按键。
检测上次按过的键:脚本在插入点将你上次按过的键与游戏兼容性出来。
把按键码存入变量:将与游戏兼容性出的按键的编号(ASCII码)保存到一个变量。
查询按键码:输入你的按键,按键码(就是编号、ASCII码,随便你怎么叫)就显示在右边了。
最全面的按键精灵教程键精灵是一款自动化工具,可以模拟人类的键盘和鼠标操作,实现自动化操作。
下面是最全面的按键精灵教程。
第一部分:按键精灵基础1.安装和启动按键精灵2.基本操作界面主要分为菜单栏、工具栏和自动化操作区域。
可以通过菜单栏或工具栏选项来执行各种操作。
3.录制基本操作点击录制按钮后,按键精灵会自动记录鼠标和键盘的操作。
进行需要录制的操作,如移动鼠标、点击、按键等。
点击停止录制按钮停止录制。
4.运行和保存脚本完成录制后,可以点击运行按钮来执行录制的操作。
也可以点击保存按钮将录制操作保存为脚本,方便之后执行。
第二部分:按键精灵进阶2.流程控制在脚本中可以使用条件判断和循环等流程控制语句,实现更复杂的自动化操作。
例如,可以根据一些条件判断是否执行一些操作,或者循环执行段操作。
3.变量和函数按键精灵支持定义和使用变量,以及自定义函数。
变量可以用来存储临时数据,函数可以用来封装一段常用的操作,提高代码的复用性。
4.窗口操作按键精灵提供了丰富的窗口操作函数,可以实现对窗口的打开、关闭、最大化、最小化、移动、调整大小等操作。
可以根据应用的需求来选择合适的窗口操作函数。
第三部分:按键精灵高级技巧1.图像识别按键精灵支持图像识别技术,可以通过图像匹配来实现一些复杂的自动化操作。
例如,可以通过图像识别找到特定的图标或按钮,并进行点击。
2.OCR识别按键精灵内置了OCR(Optical Character Recognition,光学字符识别)引擎,可以实现对屏幕上的文字进行识别。
例如,可以通过OCR识别来获取一些窗口中的文字信息。
3.网络操作4.数据处理按键精灵支持对文件和数据的读取和处理。
可以通过读取文件或者抓取网页的数据,进行数据的提取、转换和存储。
总结:以上就是最全面的按键精灵教程,包括了按键精灵的基础操作、进阶技巧和高级应用。
通过学习这些内容,可以快速上手按键精灵,实现自动化操作。
最全面的按键精灵教程一、键盘命令(2~5 页)二、鼠标命令(5~13 页)三、控制命令(13~22 页)四、颜色/图像命令(22~28页)五、其他命令(28~355 页)五、网游脚本实例(35~最后)键盘命令命令名称:GetLastKey 检测上次按键检测上次按键命令功能:命令参数:参数1 整数型,可选:变量名返回值:无脚本例子:复制代码1. // 脚本运行到这一行不会暂停, 调用的时候立即返回,得到调用之前最后一次(8.x 语法)按下的按键码保存在变量Key 里。
2. Key=GetLastKey()3. If Key = 13 Then4. Msgbox " 你上次按下了回车键"5. End If脚本例子:复制代码1. // 脚本运行到这一行不会暂停, 调用的时候立即返回,得到调用之前最后一次(7.x 语法)按下的按键码保存在变量Key 里。
2. GetLastKey Key3. If Key = 134. Msgbox " 你上次按下了回车键"5. EndIf命令名称:命令功能:KeyDown 按住键盘按住命令参数:参数1 整数型,键盘虚拟码(8.X 支持按键字符)参数2 整数型,次数返回值:无脚本例子:复制代码(8.x 语法)1. //KeyDown 、KeyDownS 、KeyDownH2. //KeyDownS: 超级模拟方式, 兼容性更强, 对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的键盘都可以使用3. //KeyDownH: 硬件模拟方式, 仅支持PS(圆口)的键盘点击查看使用硬件模拟方式的注意事项4. KeyDown 65,15. //65 是A键的按键码,上面的语句表示按住A键1 次6.7. KeyDown "A",18. // 上面的支持按键字符,语句表示按住A 键1 次2. //KeyDownS: 超级模拟方式, 兼容性更强, 对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的键盘都可以使用3. //KeyDownH: 硬件模拟方式, 仅支持PS(圆口)的键盘点击查看使用硬件模拟方式的注意事项4. KeyDown 65,15. //65 是A键的按键码,上面的语句表示按住A键1 次KeyPress 按键键盘按键参数1 整数型,键盘虚拟码(8.X 支持按键字符)参数2 整数型,次数无复制代码1. //KeyPress 、KeyPressS 、KeyPressH2. //KeyPressS: 超级模拟方式, 兼容性更强, 对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的键盘都可以使用3. //KeyPressH: 硬件模拟方式,仅支持PS(圆口)的键盘点击查看使用硬件模拟方式的注意事项4. KeyPress 65,15. //65 是A 键的按键码,上面的语句表示按A 键1 次6.7. KeyPress "A",18. // 上面的支持按键字符,语句表示按A键1 次脚本例子:(7.x 语法)复制代码1. //KeyPress 、KeyPressS 、KeyPressH2. //KeyPressS: 超级模拟方式, 兼容性更强, 对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的键盘都可以使用3. //KeyPressH: 硬件模拟方式,仅支持PS(圆口)的键盘点击查看使用硬件脚本例子:(7.x 语法)命令名称:命令功能:命令参数:返回值:脚本例子:(8.x 语法)模拟方式的注意事项4. KeyPress 65,15. //65 是A 键的按键码,上面的语句表示按A 键1 次命令名称:命令功能:命令参数:返回值:脚本例子:(8.x 语法)KeyUp 弹起键盘弹起参数1 整数型,键盘虚拟码(8.X 支持按键字符)参数2 整数型,次数无复制代码脚本例子:(7.x 语法)命令名称:命令功能:命令参数:返回值:复制代码WaitKey 等待按任意键等待按任意键参数1 整数型,可选:变量名无复制代码1. Key=WaitKey()2. // 脚本运行到这一行会暂停, 当用户按下键盘后继续执行, 并且把用户的按键码保存在变量Key 里3. If Key = 13 Then4. MessageBox " 恭喜你按下了回车键"5. End If复制代码1. WaitKey Key2. // 脚本运行到这一行会暂停, 当用户按下键盘后继续执行, 并且把用户的按键码保存在变量Key 里3. If Key = 134. Msgbox " 恭喜你按下了回车键"5. EndIf、鼠标命令命令名称:命令功能:命令参数:返回值:脚本例子:(8.x 语法)脚本例子:(7.x 语法)GetCursorPos 得到鼠标位置坐标得到当前鼠标所在的位置坐标GetCursorShape 得 到 鼠 标 形 状得到当前鼠标的形状特征参数 1 整数型,参数2. // 参数: 1 可用于一些在参数 0 下无法区分鼠标形状代码的情况3. // 下面是我们普通的 WINDOWS 鼠标形状特征4. // 不同电脑上鼠标形状特征也许不同, 请使用"抓点抓色 "功能抓取正确的鼠标 形状特征5. Shape1 = 15933502876. // 下面是我们访问网页超链接时候的手型鼠标形状7. Shape2 = 10559913298. VBSCall Shape=GetCursorShape (0) 9.If shape = shape1 10.MessageBox当前鼠标形状是普通的 WINDOWS 鼠标11. ElseIf shape = shape2 12.MessageBox当前鼠标形状是手型鼠标13. Else命令名称:命令功能:命令参数: 返 回 值: 脚本例子:(8.x 语脚本例子:(7.x 语法 )整数型,鼠标的形状值14. MessageBox 不认识当前鼠标形状!15. EndIf命令名称:命令功能:命令参数:返回值:脚本例子:(8.x 语法)GetLastClick 检测上次按过的鼠标键参数1 整数型,可选:变量名无复制代码1. Mouse=GetLastClick()2. If Mouse =32770 Or Mouse =32769 Then3. Msgbox " 你按下了鼠标左键"4. End If检测上一次按下的鼠标代码脚本例子:(7.x 语法)命令名称:命令功能:命令参数:返回值:脚本例子:(8.x 语法)复制代码1. GetLastClick Mouse2. If Mouse =32770 Or Mouse =327693. Msgbox " 你按下了鼠标左键"4. EndIfLeftClick左键单击模拟点击鼠标左键1. //LeftClick 、LeftClickS 、LeftClickH2. //LeftClickS: 超级模拟方式, 兼容性更强, 对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用3. //LeftClickH: 硬件模拟方式, 仅支持PS(圆口)的鼠标点击查看使用硬件模拟方式的注意事项4. LeftClick 55. // 在当前鼠标的位置单击鼠标左键5 次脚本例子:复制代码(7.x 语法)1. //LeftClick 、LeftClickS 、LeftClickH2. //LeftClickS: 超级模拟方式, 兼容性更强, 对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用3. //LeftClickH: 硬件模拟方式, 仅支持PS(圆口)的鼠标点击查看使用硬件模拟方式的注意事项4. LeftClick 55. // 在当前鼠标的位置单击鼠标左键5 次命令名称:MouseWheel 鼠 标 滚 轮MiddleClick 中 键 单 击模拟点击鼠标中键 参数 1 整数型,次数 无 复制代码1. //MiddleClick 、 MiddleClickS 、 MiddleClickH2.//MiddleClickS: 超级模拟方式 , 兼容性更强 , 对键盘和鼠标没有特别的要 求,PS2( 圆口)和 USB 接口的鼠标都可以使用3.//MiddleClickH: 硬件模拟方式 , 仅支持 PS ( 圆口) 的鼠标 点击查看使用 硬件模拟方式的注意事项4. MiddleClick 55.// 在当前鼠标的位置单击鼠标中键 5 次复制代码1. //MiddleClick 、 MiddleClickS 、 MiddleClickH2.//MiddleClickS: 超级模拟方式 , 兼容性更强 , 对键盘和鼠标没有特别的要 求,PS2( 圆口)和 USB 接口的鼠标都可以使用3. //MiddleClickH: 硬件模拟方式 , 仅支持 PS ( 圆口) 的鼠标 点击查看使用硬件模拟方式的注意事项4. MiddleClick 55.// 在当前鼠标的位置单击鼠标中键 5 次1.// 在脚本开始的时候使用这个命令,可以有效防止用户误触鼠标引起脚本执行出错2. LockMouse3. Do4.Delay 10005. Loop1.// 在脚本开始的时候使用这个命令,可以有效防止用户误触鼠标引起脚本执行出错2. LockMouse3. While True4. Delay 10005. EndWhile复制代码(7.x 语法)复制代码1. // 如果滚动量为正, 向上滚动; 否则向下滚动.2. // 仅支持Windows 2000 以上的操作系统.3. MouseWheel 14. // 把鼠标滚轮向上滚动1 格MoveR 鼠标相对移动鼠标相对移动到参数1 整数型,X 距离参数2 整数型,Y 距离无复制代码1. //MoveR 、MoveRS 、MoveRH2. //MoveRS: 超级模拟方式, 兼容性更强, 对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用3. //MoveRH: 硬件模拟方式, 仅支持PS(圆口)的鼠标点击查看使用硬件模拟方式的注意事项4. // 当前鼠标在(100,100)点, 使用下面语句5. MoveR 200,3006. // 之后,鼠标就被移到了(100+200,100+300)处,也就是坐标(300,400)2. //MoveRS: 超级模拟方式, 兼容性更强, 对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用脚本例子:处7. // 提示: 使用硬件模拟方式不能碰键盘鼠标, 否则会导致出错命令功能:命令参数:返回值:脚本例子:(8.x 语滚动鼠标滚轮参数1 整数型,滚动量复制代码1. // 如果滚动量为正, 向上滚动; 否则向下滚动.2. // 仅支持Windows 2000 以上的操作系统.3. MouseWheel 14. // 把鼠标滚轮向上滚动1 格脚本例子:(7.x 语法)命令名称:命令功能:命令参数:返回值:脚本例子:无3.//MoveRH: 硬件模拟方式, 仅支持PS( 圆口) 的鼠标点击查看使用硬件模拟方式的注意事项4. // 当前鼠标在(100,100) 点, 使用下面语句5. MoveR 200,3006. // 之后, 鼠标就被移到了(100+200,100+300)处, 也就是坐标(300,400)处7.// 提示: 使用硬件模拟方式不能碰键盘鼠标, 否则会导致出错命令名称:MoveTo 鼠标移动命令功能:移动鼠标到命令参数:参数1 整数型,X 坐标参数2整数型,Y 坐标返回值:无脚本例子:复制代码1. //MoveTo 、MoveToS 、MoveToH(8.x 语法)2. //MoveToS: 超级模拟方式, 兼容性更强, 对键盘和鼠标没有特别的要求,PS2( 圆口) 和USB接口的鼠标都可以使用3. //MoveToH: 硬件模拟方式,仅支持PS(圆口) 的鼠标4. MoveTo 100,2005. // 把鼠标移动到(100,200) 这个点上6. intX=507. intY=1508. MoveTo intX,intY9. // 把鼠标移动到(intX,intY) 这个点上, 需要5.50 以上版本支持.脚本例子:复制代码1. //MoveTo 、MoveToS 、MoveToH(7.x 语法)2. //MoveToS: 超级模拟方式, 兼容性更强, 对键盘和鼠标没有特别的要求,PS2( 圆口) 和USB接口的鼠标都可以使用3. //MoveToH: 硬件模拟方式,仅支持PS(圆口) 的鼠标4. MoveTo 100,2005. // 把鼠标移动到(100,200) 这个点上6. intX=507. intY=1508. MoveTo intX,intY9. // 把鼠标移动到(intX,intY) 这个点上, 需要5.50 以上版本支持.命令名称: RestoreMousePos恢 复 上 次 保 存 的 鼠 标 位 置保存当前鼠标位置 命令功能: 命令参数:无返 回 值: 无 脚本例子:复制代码1.SaveMousePos(8.x 语法 )2. // 保存当前鼠标位置3.Delay 1004.MoveTo 500,205.Delay 1006.RestoreMousePos7.// 将鼠标移动到上一次保存的鼠标位置8.// 保存/ 恢复鼠标位置常用于制作网络游戏练功脚本, 脚本开始时保存鼠标位置 , 脚本结束时恢复鼠标位置 ,9.// 这样脚本执行后鼠标的位置就不会变化脚本例子:复制代码1.SaveMousePos(7.x 语法 )2. // 保存当前鼠标位置3.Delay 1004.MoveTo 500,205.Delay 1006.RestoreMousePos7.// 将鼠标移动到上一次保存的鼠标位置8.// 保存/ 恢复鼠标位置常用于制作网络游戏练功脚本, 脚本开始时保存鼠标位置 , 脚本结束时恢复鼠标位置 ,9.这样脚本执行后鼠标的位置就不会变化3. //RightClickH: 硬件模拟方式 , 仅支持 PS ( 圆口 ) 的鼠标 点击查看使用硬件模拟方式的注意事项4. RightClick 55. // 在当前鼠标的位置单击鼠标右键 5 次2. //RightClickS: 超级模拟方式 , 兼容性更强 , 对键盘和鼠标没有特别的要 求,PS2( 圆口) 和 USB 接口的鼠标都可以使用3. //RightClickH: 硬件模拟方式 , 仅支持 PS ( 圆口 ) 的鼠标 点击查看使用硬 件模拟方式的注意事项4. RightClick 55. // 在当前鼠标的位置单击鼠标右键 5 次命令名称: SaveMousePos 保 存 当 前 鼠 标 所 在 位 置命令功能: 保存当前鼠标位置 命令参数: 无 返 回 值: 无 脚本例子:复制代码1.SaveMousePos(8.x 语法 )2.// 保存当前鼠标位置3.Delay 1004.MoveTo 500,205.Delay 1006.RestoreMousePos7.// 将鼠标移动到上一次保存的鼠标位置8.// 保存/ 恢复鼠标位置常用于制作网络游戏练功脚本, 脚本开始时保存鼠标位置 , 脚本结束时恢复鼠标位置 ,9.// 这样脚本执行后鼠标的位置就不会变化脚本例子:复制代码1.SaveMousePos(7.x 语法 )2. // 保存当前鼠标位置3.Delay 1004.MoveTo 500,205.Delay 1006. RestoreMousePos脚本例子:(7.x 语法 )命令名称:Call 调 用 过 程7. // 将鼠标移动到上一次保存的鼠标位置8.// 保存/ 恢复鼠标位置常用于制作网络游戏练功脚本, 脚本开始时保存鼠标位置 , 脚本结束时恢复鼠标位置 ,9.这样脚本执行后鼠标的位置就不会变化复制代码1. WaitClick last click2. MessageBox " 您按下了 " & last click三、控制命令命令名称: 命令功能: 命令参数: 返 回 值: 脚本例子:(8.x 语WaitClick 按 任 意 鼠标 键 继 续脚本执行到这一句暂停 , 按下任意鼠标键之后继续 参数 1 整数型,可选:变量名复制代码脚本例子: (7.x 语法 )17.命令名称: Do循环命令功能: 条件循环命令参数: 参数 1 条件型,循环条件 返 回 值: 无 脚本例子:复制代码1. 例子 1 :(8.x 语法 )2. // 支持 Exit Do 命令退出循环3.i=04.Do While i=05.Msgbox " 我停不下来啦 !! 快住手 "6.Loop7.// 当循环条件成立的时候,反复执行循环体8.9.10. 例子 2 :11. i=012. Do Until i=013.Msgbox " 为什么没有循环到我呢? "14. Loop15. Msgbox " 循环结束 "16. // 当循环条件成立的时候,离开循环体 命令功能: 命令参数: 返 回 值: 脚本例子:(8.x 语调用过程参数 1 字符串型,过程名 无 复制代码1. Call 子程序 (" 我是子程序 , 被你调用了 ")2. EndScript3. // 支持中文名变量4. Sub 子程序 ( 啊 )5. Msgbox 啊6. End Sub7. // 定义一个过程 , 可以在脚本中调用这个过程脚本例子:(7.x 语法 )复制代码18.19. 例子3 :20. i=021. Do Until i=122. Msgbox " 我停不下来啦!! 快住手"23. Loop24. // 当循环条件不成立的时候,反复执行循环体25.26.27. 例子4 :28. n=029. Do While true30. Msgbox " 我将循环10 次停下来!!"31. If n>=10 Then32. // 当循环条件成立的时候,离开循环体33. Exit do34. End if35. n=n+136. Loop37. Msgbox n & " 次"38.39.40. 例子5 :41. i = 042. Do43. MessageBox "ok"44. Loop While i <> 045. // 条件放后面,前面的循环内容可以执行一次!脚本例子:(7.x 语法)命令名称:命令功能:命令参数:返回值:脚本例子:(8.x 语法)For 循环循环一定次数参数1 整数型,循环次数无3. For i=0 To 94. Delay 1005. Next6. //循环 10 次7.8. 例子 2 :9.// 支持Exit For命令退出循环10. For 1011. Delay 10012. Next13. // 循环 10 次14.15.16. 例子 3 :17. // 支持 Exit For 命令退出循环18. For i=0 to 19 step 219. Delay 10020. Next21. // 循环 10 次22.23. 例子 4 :24. // 支持 Exit For 命令退出循环25. For i=0 to 19 step 226. Delay 10027. If i>9 Then28. Exit For29. End If30. Next31. // 循环 5 次Function 函 数函数多类型脚本例子:(7.x 语法 )复制代码1.For 102.Delay 1003.EndFor4.// 循环 10 次脚本例子:(8.x 语法)复制代码1. // 支持Exit Function 命令退出函数过程2. Msgbox 函数过程(" 我是函数, 被你调用了")3. EndScript4. Function 函数过程(a)5. 函数过程=a6. End Function脚本例子:(7.x 语法)命令名称:命令功能:命令参数:返回值:脚本例子:(8.x 语法)7. // 定义一个函数过程, 可以在脚本中调用这个函数Gosub 调用子程序调用过程参数1 字符串型,过程名脚本例子:(7.x 语法)复制代码1. // 可带参数传递2. Call 子程序(" 我是子程序, 被你调用了")3. EndScript4. Sub 子程序(a)5. Msgbox a6. End Sub7. // 定义一个过程, 可以在脚本中调用这个过程复制代码1. Gosub 子程序2. EndScript3. Sub 子程序4. Msgbox " 我是子程序, 被你调用了"5. Return 子程序6. // 定义一个过程, 可以在脚本中调用这个过程无命令名称:命令功能:Goto 跳转到标记跳转到Rem 标记处命令参数: 参数 1 字符串型,标号 返 回 值: 无 脚本例子:复制代码(8.x 语法 )1.Goto 标记2. Delay 1003.Rem 标记4.Msgbox " 你直接跳到这里了 !! , 上面的延迟没有被执行 !!"5.// 跳转语句,可以跳转到 rem标记过的标记处继续执行命令名称: If如果.. 则命令功能:判断表达式命令参数: 参数 1 条件型,表达式返 回 值: 无 脚本例子:复制代码(8.x 语法 )1.例子 1 :2. i=03.If i=0 Then4.Msgbox "条件判断符合被通过 !!"5.End If6.// 通过判断表达式的取值,来执行后面的动作或控制7.8.例子 2 :9.i=110.If i=0 Then11.Msgbox " 条件判断符合被通过 !!"12.ElseIf i=1 Then13.Msgbox "否则条件判断符合被通过 !!"14.Else15.Msgbox "否则 !!"16. End If脚本例子:(7.x 语法 )复制代码1.Goto 标记2.Delay 1003.Rem 标记4.Msgbox " 你直接跳到这里了 !! , 上面的延迟没有被执行 !!"5.// 跳转语句,可以跳转到 rem标记过的标记处继续执行脚本例子:(7.x 语法)17. // 通过判断表达式的取值,来执行后面的动作或控制1. i=02. If i=03. Msgbox " 条件判断符合被通过!!"4. EndIf5. // 通过判断表达式的取值,来执行后面的动作或控命令名称:命令功能:命令参数:IfColor 颜色判断判断屏幕某点的颜色参数1 整数型,屏幕X 坐标参数2 整数型,屏幕Y 坐标参数3 字符串型,颜色16 进制值参数4 整数型,判断条件返回值:脚本例子:(8.x 语法)脚本例子:无1. 例子1 :2. // 判断条件(0: 等于1: 不等于2: 近似等于)3. IfColor 860,27,"e1b072",0 Then4. Msgbox " 颜色等于"5. Else6. Msgbox " 颜色不等于"7. End If8. // 判断坐标点(860,27)的颜色是否等于e1b0729.10.11. 例子2 :12. a=1:b=113. IfColor 650,118,"78F0E8",2 Then14. MessageBox "a"15. ElseIf b=a Then16. MessageBox "b"17. End if复制代码复制代码1. // 判断条件(0: 等于1: 不等于2: 近似等于)2. IfColor 860,27,e1b072,0(7.x 语法)(7.x 语法)3. Msgbox " 颜色等于"4. Else5. Msgbox " 颜色不等于"6. EndIf7. // 判断坐标点(860,27)的颜色是否等于e1b072命令名称:命令功能:命令参数:返回值:脚本例子:(8.x 语法)脚本例子:(7.x 语法)命令名称:命令功能:命令参数:返回值:脚本例子:(8.x 语法)Rem 标记/ 注释标记命令可当注释参数1 字符串型,文字无复制代码1. // 不支持数字开头的和符号作为标记名2. // 标记命令. 即可当注释, 也可以为Goto 跳转指令作标记3. Rem 脚本开始复制代码1. // 标记命令. 即可当注释, 也可以为Goto 跳转指令作标记2. Rem 脚本开始RestartScript重新启动脚本运行重新启动脚本运行1. For i=0 to 22. Delay 10003. Call Plugin .Msg.ShowScrTXT(0, 0, 1024, 768, " 屏幕内容脚本例子:填写" & i, "0000FF")4. Next5. RestartScript // 重新启动脚本运行命令名称:命令功能:命令参数:返回值:脚本例子:(8.x 语法)Select 情况条件选择根据情况选择条件判断参数1 条件型,情况1. // 不支持判断语句如:Case a>02. UserVar 变量=0 " 输入(0~9 )数字"3. //<> ----------------- 以下是选择条件结结构判断4. Select Case 变量5. Case 06. Msgbox " 你输入的数字为:0"7. Case 18. Msgbox " 你输入的数字为:1"9. Case 210. Msgbox " 你输入的数字为:2"11. Case 312. Msgbox " 你输入的数字为:3"13. Case 414. Msgbox " 你输入的数字为:4"15. Case 516. Msgbox " 你输入的数字为:5"17. Case 618. Msgbox " 你输入的数字为:6"19. Case 720. Msgbox " 你输入的数字为:7"21. Case 822. Msgbox " 你输入的数字为:8"23. Case 924. Msgbox " 你输入的数字为:9"25. Case Else26. Msgbox " 你输入的数字不正确,请输入(0~9 )数字!"27. End Select复制代码脚本例子:(7.x 语法)命令名称:复制代码1. 无Sub 子程序(7.x 语法 )命令功能: 命令参数: 返 回 值: 脚本例子: (8.x 语法 ) 参数 1 字符串型,过程名无复制代码1.// 支持 Exit Sub命令退出子程序过程2.Call 子程序 ()3.EndScript4.Sub 子程序 ()5.Msgbox " 我是子程序, 被你调用了 "6.End Sub7.// 定义一个过程, 可以在脚本中调用这个过程定义一个过程脚本例子: (7.x 语法 ) 命令名称: 命令功能: 命令参数: 返 回 值: 脚本例子: (8.x 语法 ) While 如 果 .. 则 循环条件循环参数 1 条件型,循环条件 无1. i=02. While i=03. Msgbox "我停不下来啦 !! 快住手 "4. Wend5. // 当循环条件成立的时候,反复执行循环体复制代码脚本例子:复制代码1.i=02.While i=03.Msgbox "我停不下来啦 !! 快住手 "4. EndWhile5. // 当循环条件成立的时候,反复执行循环体四、颜色/ 图像命令命令名称: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,y2. // 在区域内从中心到外围找颜色为c 的点,把坐标保存在变量x 和y 中3. //left,top,right,bottom 都是整数或者整数型变量,说明了区域的左,上,右,下界限4. // 颜色是类似于"0000FF" 的字符串,如果不取变量,别忘了加双引号5. // 如果没有找到这个颜色,则x 和y 的值都被置为-16. FindCenterColor 0,0,800,600,"0000FF",x,y7. If x>0 and y>0 Then8. MoveTo x,y9. End If10. // 在区域(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 都是整数或者整数型变量,说明了区域的左,上,右,下界限(7.x 语法 )4. // 颜色是类似于 "0000FF" 的字符串,如果不取变量,别忘了加双引号5. // 如果没有找到这个颜色, 则 x 和 y 的值都被置为-16.VBSCall FindCenterColor(0,0,800,600,"0000FF",x,y)7. If x>0 and y>08.MoveTo x,y9. EndIf10. // 在区域 (0,0,800,600)中找红色( "0000FF" )的点,如果找到,则把鼠标移动到这个点FindColor 找 色无复制代码1. //FindColor left,top,right,bottom,c,x,y2. // 在区域内从左到右,从上到下找颜色为 c 的点,把坐标保存在变量 x 和 y 中3. //left,top,right,bottom 都是整数或者整数型变量,说明了区域的左, 上,右,下界限4. // 颜色是类似于 "0000FF" 的字符串,如果不取变量,别忘了加双引号5. // 如果没有找到这个颜色,则 x 和 y 的值都被置为 -16. FindColor 0,0,800,600,"0000FF",x,y7. If x>0 and y>0 Then8. MoveTo x,y9. End If10. // 在区域 (0,0,800,600) 中找红色( "0000FF" )的点,如果找到,则把鼠 标移动到这个点复制代码1. //VBSCall FindColor(left,top,right,bottom,c,x,y)命令名称: 命令功能: 命令参数:返 回 值:脚本例子:(8.x 语法 )脚本例子:2. // 在区域内从左到右,从上到下找颜色为c 的点,把坐标保存在变量x 和y 中3. //left,top,right,bottom 都是整数或者整数型变量,说明了区域的左,上,右,下界限4. // 颜色是类似于"0000FF" 的字符串,如果不取变量,别忘了加双引号5. // 如果没有找到这个颜色,则x 和y 的值都被置为-16. VBSCall FindColor(0,0,800,600,"0000FF",x,y)7. If x>0 and y>08. MoveTo x,y9. EndIf10. // 在区域(0,0,800,600) 中找红色( "0000FF" )的点,如果找到,则把鼠标移动到这个点命令名FindColorEx 模糊找色称:命令功在屏幕区域模糊查找指定的颜色能:命令参参数1 整数型,屏幕左上角x 坐标数:参数2 整数型,屏幕左上角y 坐标参数3 整数型,屏幕右下角x 坐标参数4 整数型,屏幕右下角y 坐标参数5 字符串型,16 进制颜色值参数6 整数型,查找方式参数7 整数型,相似度参数8 整数型,返回x 坐标参数9 整数型,返回y 坐标返回无值:脚本例复制代码1. //FindColorEx left,top,right,bottom,c,type,similar,x,y子:2. // 在区域内找颜色为c 的点,把坐标保存在变量x 和y 中(8.x 语 3. //left,top,right,bottom 都是整数或者整数型变量,说明了区域的左,上,右,下界限法)4. // 颜色是类似于"0000FF" 的字符串,如果不取变量,别忘了加双引号5. //type 表示查找方式。
程序结构介绍
此文为小妖首发于按键精灵论坛。
借百度平台转发,希望能够帮到学按键的朋友。
当然,我自己也是一个新手,只不过,我能看一点代码,做点帮助自己的减少工作量的脚本。
也达不到那些大神们,对API、dos(貌似有更多东西,可惜我只知道这些)等等理解深刻理解的大神那样,做到自己写代码优化脚本。
我只能站在这些大神们做好的东西上,去做一些自己喜欢做的事。
估计很多人和我当初一样迷茫。
看着按键的教程,学按键教程里面录制、跳转标记、找色、找图、找字。
然后弄出个满是goto。
的脚本。
最后自己都不知道脚本写的是什么。
一开始就学补血、补篮、找图打怪。
不仅弄出来的脚本,自己糊涂,给别人看,别人都糊涂。
那怎么徐徐渐进呢?
个人理解来说,我们应该从小到大。
实际上,按键是基于VBS开发出来的(不知道这句话对不对,反正就是类似VB。
)。
一个脚本,基本上都遵循着程序结构来写的。
这儿介绍3种基本的程序结构:
1. 顺序结构。
顺序结构就是按照运行顺序决定。
比如:
1.TracePrint "第一次" //调试显示“第一次”
2.TracePrint "第二次" //调试显示“第二次”
3.TracePrint "第三次" //调试显示“第三次”
这段代码,就是依次显示第一次第二次第三次。
一条一条的运行,一条一条的显示。
当然,这儿你完全可以单步调试来查看运行顺序。
2.选择结构。
选择结构是判断一个值,是否为真,为真的话怎么样,为假的话怎么样。
比如:
1.If 1 = 1 Then //判断 1=1 是否成立
2. TracePrint "真的相等" //成立则调试显示真的相等
3. Else //如果不成立
4. TracePrint "不相等" //不成立则显示不相等
5.End if //判断语句结束
这段代码,第一句的时候,就在做判断,是否相等,相等就执行紧接着的那条,不相等的话,就执行Else 后面的那条。
双斜杠// 后面的字是注释,不会直接运行。
这儿是用来给大家解释语句的。
可以删除,不影响脚本运行。
3.循环结构。
循环结构有很多。
比如,do … loop 循
环While … wend 循环for … Next循环等等。
我这儿不是教程,也就不一一介绍,大家可以去找相关教程。
比如:
1. For i = 0 to 3 //循环3次,循环变量为 i 每次自加1(默认)
2. TracePrint"循环" //调试输出
3. Next // 循环结束
这段代码,我用了一个变量i ,变量通俗点就是我们用于存放一些可变动的数值、字符串等等的名称。
这儿的i 相当于一个盒子,可以装我们想装的东西,比如值1。
变量可以用来相加运算等等等。
具体的需要学习变量相关教程。
需要学习的包括变量命名规则、变量定义、变量作用域、变量使用等等。
当然,变量中还有数组变量、环境变量等等。
把以上的学习,那么我们就可以开始做一些小脚本了。
比如,做一个计算1加到100 显示结果的脚本。
先要分析,1加到100,就是累加。
我们需要一个变量来装这个累加的结果。
比如,定义一个sum来装结果。
1.Dim sum
这样,我们就有了一个变量,用来装累加得到的值。
比如,1+2的值装在sum里面。
那就是: sum=1+2
这儿,我们称为赋值。
就是把1+2 这个值赋值到sum 里面。
所以,想得到1加到10可以这么写:
1.Dim sum //定义 sum
2.Sum=1+2+3+4+5+6+7+8+9+10 // 给sum 赋值,值是1加到10
3.TracePrint sum // 调试输出 sum 的值
比较偷懒,因为写到100 你看着也累,我写着也累。
估计很多懂点的人都知道,这方法太笨了。
对,要是每个代码都这么写,那么我们加到一万、十万、百万怎么办。
光写这个都累死人了。
如果学过数学,那么,你就知道,这个是个等差数列。
也就是说,1到2相差1,2到3呢,也是相差1。
如果我们用一个变量来装1,那么只要他本身再加1,就会变成2,再加1就会变成3。
啊,不懂啊?我们定义这个变量i 那么就有如下:
1.Dim i //定义
2.i = 1 //给i一个初始值
3.TracePrint i //调试下,这儿的i结果是什么
4.i=i+1 // i在自己的值的基础上加1
5.TracePrint i //再次显示i的值
这样的话, i 就会在自己的基础上增加1。
如果我们用for 来让i 一直从1变成100,那就是:
1.Dim i // 不要忘记了定义,大家最好去看看定义相关的。
比
如全局变量与局部变量的作用域
2.i = 1 // 给i一个初始值
3.TracePrint i //显示i的值
4.For 99 //循环99次
5.i = i + 1 //i 等于它自己加1
6.TracePrint i //显示i的每运行一次之后的值
7.Next //循环结束
是不是i从1变成100了?
然后呢?Sum 是不是应该每一次i变动之后,都要加到sum里面就行了呢?
也就是:
1.Dim i , sum // 多定义了一个sum,因为要用到它。
2.i = 1 // 给i一个初始值
3.sum = 0 //同样的,要给sum一个初始值。
Sum刚开始的时候应该是0,
因为还没开始加。
4.For 100 //循环100次
5.Sum = sum + i //每循环一次,sum值就等于上一次的sum值加上i。
6.i = i + 1 //i 等于它自己加1
7.Next //循环结束
8.TracePrint sum //显示sum最后的结果
估计有人会问,为什么是循环100次呢?不是循环99次,i的值就是100了吗?
我得告诉你,因为这儿有两个结构,一个是顺序结构,一个呢?是循环结构。
程序是这样运行的,
第一、定义
第二、给i赋值1,给sum赋值0。
第三、进入循环体for 100里面。
先执行sum=sum+i 这句,也就是说,先把1累加到sum里面。
第四、i 在自己的基础上加1,变成2。
最后循环下一次。
下一次照样是sum=sum+i,也就是
sum=1+2。
这样,一直到最后一次,这时候,循环体(循环体就是循环结构里面的那些个语句,这儿有sum=sum+i,i=i+1)循环执行了99次,i 的值为100(前面我们调试for99次的时候,我已经调试输出了i的值给大家看了)。
但是这时候,因为i=i+1在sum=sum+i的下面。
安装顺序结构来说,i=100的时候,并没有加到sum里面。
如果这个时候结束了,那么,sum里面只加到了99。
所以,我们要再加一次,把100加进去。
这就是顺序结构与循环结构结合,实现了1加到100的值。
其实,如果你进一步了解for,那么你会知道,可以这么写。
1.Dim i, sum
2.For i = 1 to 100 //重点在这儿,i这儿作为一个变量,默认的情况下,
这样写会初始值为1每次循环的时候,自己加1,一直循环到i变成100(到100的时候还
会执行一次循环体,与上面的有点差异)。
3.Sum = sum + i
4.Next
5.TracePrint sum
本章结束。