零基础学按键精灵(第三章)
- 格式:doc
- 大小:62.00 KB
- 文档页数:8
【索引】按键精灵脚本基础教程中[教程]基础教程 - 第3课:过程语句的学习接第2课,零编程学会补红蓝脚本的制作本节想学会使用Sub和GoSub语句的使用,以及对第2节没有解释清楚的地方加以补充。
Sub作为一个过程语句的关键字,在代码重用和逻辑编排上起着至关重要的作用。
先看一下关键字的说明:1.Sub [过程名]2.//这里的部分就是过程体(自命名,可以看的懂就好)了。
可以添加执行代码。
3.Return复制代码解释:[过程名]可以随意更改,起一个可以很容易理解的名字。
是书写代码的良好习惯,也可以使用中文。
Return 语句的作用是返回调用点。
GoSub [过程名]解释:gosub顾名思义,到sub。
sub可以理解为过程、函数、方法。
叫法不同,原理一样。
我们改装上次讲过的补红蓝脚本:1.Sub main2.Rem s3.Gosub add_hp4.Gosub add_mp5.Delay 1006.Goto s7.Return8.Sub add_hp9.IfColor 126,19,4a5110,110.KeyPress 116,111.EndIf12.Return13.Sub add_mp14.IfColor 126,19,4a5110,115.KeyPress 117,116.EndIf17.Return复制代码以上代码组成一个完整的体系,并且结构合理,清晰。
易于看懂。
通常会把执行单一功能的一块代码做为一个sub。
比如补红蓝脚本,一个主控sub,一个补红,一个补蓝。
要修改哪部分,只要在对应的sub中修改即可。
sub main只是一种编程习惯,在按键精灵里,如果没有碰到goto、gosub这两个语句(另外还有几个会发生跳转,以后章节就讲到)是不会发生跳转代码行号的,只是顺序执行,在碰到sub时,直接忽略该行语句,执行下一条。
我们来看下面代码:1.Sub main2.Gosub test3.Return4.MessageBox "测试"5.Sub test6.MessageBox "测试"7.Return复制代码该代码在按键精灵5.2以前的版本中(包括5.2)都会执行不正常。
按键精灵教程按键精灵的教程,帮助您学习如何使用该工具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 后面的那条。
[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。
「知识盲区」按键精灵找图、多点找色、找字的原理(续)大家好,我是公众号3分钟学堂的郭立员,今天给带来一期基础知识的文章,主要讲一下找图、多点找色、找字之间的联系与区别,这是一篇基础原理的教程,可能会有些枯燥。
由于篇幅比较长,分两期更新,这是第二期,本期主要讲图色命令相似度参数的原理以及多点找色和找字的原理,如果没看过第一期,可以先看昨天的文章。
相似度上期文章,我们讲完了找图命令的偏色这个参数的原理,这期我们来说说相似度这个参数的原理。
关于相似度可能很多朋友会有一些误区,比如拿找图参数中默认的0.9相似度来说:【误区一】假设找的图是10*10的图片,一共100个像素点,如果相似度是0.9,那么就是90%相似,100个点中有至少90个点一样,就认为是符合要求的图。
【误区二】假设要找的颜色点是646464,为啥是这个颜色,因为它换算成10进制以后,蓝色、绿色、红色就是100,100,100。
如果相似度是0.9,那么每个颜色符合要求的就是90~110。
以上两个都是误区,那么相似度到底是怎么计算呢?还是以相似度0.9为例,那么容差的范围就是±10%,这个10%是针对于颜色的色阶(256个等级)的。
计算公式:256*10%=25.6这是一个颜色的,蓝绿红一共3个颜色分量,所以容差就是25.6*3=76.8得到容差值以后,我们怎么算出颜色值的有效范围呢?还是以646464这颜色为例,76.8这个差值怎么分呢?可以单独给蓝色,那么100+76.8=176(结果取整数部分),100-76.8=23(结果取整数部分),颜色的范围就是176464~B06464。
同样的道理绿色和红色也是这样计算。
除了给单一颜色分量以外,还可以把76.8分给每一个分量,比如均分每一个颜色分量就是±25.6的。
当然随意分也可以。
说到随意分,可不可以这样,比如给蓝色100,给红色-30,两个加起来是70,也在76.8这个容差范围内,这样写行不行?答案是不行,我们说的±指的是变化趋势,3个颜色分量相加是绝对值相加,那么给蓝色100,给红色-30的结果是100+负30的绝对值,也就是130,已经超出了76.8的容差范围。
按键精灵是一个可以模拟电脑操作的软件,您在电脑上的一切动作都可以让按键精灵模拟执行,完全解放您的双手。
按键精灵可以帮你操作电脑,不需要任何编程知识就可以作出功能强大的脚本。
如果你还为一些枯燥、繁琐的电脑操作而烦恼,按键精灵绝对会是你最好的帮手。
那么,按键精灵具体能帮我们干什么呢?我们来列举几个例子来说明下。
* 网络游戏中可作脚本实现自动打怪,自动补血,自动说话等;* 办公族可用它自动处理表格、文档,自动收发邮件等;* 任何你觉得“有点烦”的电脑操作都可以替你完成。
按键精灵第一个实现了“动动鼠标就可以制作出脚本”的功能。
我们不希望为了使用一个小软件而去学习编程知识,考虑到这些,所以按键精灵完全界面操作就可以制作脚本。
按键精灵的脚本是纯粹的TXT文件,即使是目前新增了插件功能,也引入了数字签名的机制。
因此我们可以放心的使用网站上的脚本而不用担心会有病毒。
脚本就是一系列可以反复执行的命令.通过一些判断条件,可以让这些命令具有一定的智能效果.我们可以通过”录制”功能制作简单的脚本,还可通过”脚本编辑器”制作更加智能的脚本.今天我们就通过录制一个最简单的脚本,来手把手的教大家使用按键精灵。
上网一族一般开机后会先看看自己邮箱,或者看看自己博客;每天如此,可能都有些烦了。
现在好了,把这些繁杂的事情交给按键精灵吧。
今天我们就来录制一个自动登录博客,并对整个页面进行浏览的脚本。
首先,我们打开“按键精灵”。
其运行界面如下(图1):图1 运行界面打开软件后点击工具栏上“新建”项(如图2);之后进入“脚本编译器”界面(如图3)。
现在就可以正式开始编译脚本了。
图2 新建图3 脚本编译器界面在脚本编译器界面上,左键点击工具栏上“录制”项,会出现这样的情况:进入桌面,并出现一个小的对话框(如图4)。
图4录制在这个小的对话框中,左侧红色圆按钮是录制的开始,第二个蓝色方按钮是录制结束,第三个是存储录制内容。
在录制过程中该对话框可以随意移动,不会影响录制结果。
第一章变量的使用不论是在VBScript 的程序或任何其他的程序语言中,有一个最重要的也是最基本的概念叫做变量,因为写程序的目的在于,写出的程序在大部分的情况都可以执行出正确的结果。
就如同一个卖篮球鞋的厂商出了一双又好看又耐穿的球鞋,但是这款球鞋只有唯一的一个尺寸,如此一来,就算鞋子再好,消费群也只是那一小部分人。
程序也是一样的,好的程序就必须给程序使用者多一点弹性,程序才能发挥它最大的用处。
想做到这一点,就必须使用变量来编写程序了。
那变量到底是用来做什么的呢?简单说,变量就是用来存储某些信息,有可能是存储一些计算结果、人的姓名、字符串输入的正确性等等。
每当程序使用了一个变量,程序就会吧资料写到计算机的内存中,等程序需要它的时候就可以从内存中拿出来使用了,这就是变量最常被使用的方法。
本章重点介绍如何在VBScript 中声明及应用变量。
一变量的声明既然变量很重要,那就先来看看要如何产生一个变量。
变量的命名要遵守下列几个规则。
■ 开头必须是一个字母。
■ 要在255 个字符之内,这一点不需要太担心,如果一个变量名字长达255个字符的话,相信没几个人能自己记得住。
■ 可以使用任何字符、数字及下划线,但是不可以使用空格。
■ 不可以使用VBScript 会用到的运算符号,例如+ 、- 、* 、/ 等。
■ 不可以使用VBScript 中使用到的保留字,例如MID 、DIV 等。
由于VBScript 是由Microsoft 发展出来的语言,所以它的命名的规则还是遵照它一贯的设置,变量的名称是没有大小写之分的,例如:变量名MyClass 和变量名myclass 是一样的。
要在VBScript 中声明一个变量,方法是利用Dim 指令,在这个函数后面加上一个符合变量命名规则的名称,就等于建立了一个新的变量,例如:Dim customers在VBScript 中,变量的产生分为两种,一种就是用Dim 声明,另外一种就是直接给变量赋值,如此变量自然就存在了。
[General]Description=动作教程3:将脚本打包为小精灵BeginHotkey=51BeginHotkeyMod=2PauseHotkey=0PauseHotkeyMod=0StopHotkey=123StopHotkeyMod=0RunOnce=1EnableWindow=Enable=0AutoRun=0[Repeat]Type=0Number=1[Relative]SetupOCXFile=[Comment]Content=.【功能说明】.用动作脚本的方式介绍如何使用按键小精灵功能..【使用说明】.按下热键3,即可启动脚本。
..【作者介绍】.vrBrothers.Leo..【制作日期】.2006.9..[Script]//初始化的工作Dim hWndDim ax,ay,bx,byset TiShiObj = createobject("WScript.Shell")//鼠标移到屏幕正中并保存位置,这样可以显示较长时间的鼠标移动轨迹YiDongSuDu=3Gosub YiDaoZhongJianSaveMousePosMoveTo 0,0//先说明一下脚本的功能Gosub ShuoMing//按顺序执行各个功能模块Gosub XiaoJLGosub ZhiZuoJLEndScript//功能模块0:介绍这个脚本的基本情况Sub ShuoMingTiShiXinXi = "【按键精灵】动起来教程 3.0讲,制作:vrBrothers.Leo"&vbCrLf&"本教程完全自动,请勿在脚本运行时接触键盘和鼠标!"Gosub TiShiTiShiXinXi = "本讲介绍如何制作小精灵;所需时间:1分30秒"Gosub TiShiTiShiXinXi = "小精灵功能是按键精灵又一个特色,可以把脚本打包为【独立执行的EXE 程序】"Gosub TiShiTiShiXinXi = "下面我们介绍小精灵的具体制作方法"Gosub TiShiReturn ShuoMing//功能模块1:主界面移动鼠标到录制按钮,按下鼠标打开录制窗口Sub XiaoJL//选脚本TiShiXinXI = "首先必须选中一个脚本,才能打包小精灵"Gosub TiShiRestoreMousePos//第一个脚本的位置bxOpp = 321:byOpp = 140Gosub GetABPointGosub ManManYiDongLeftClick 1Delay 2000TiShiXinXI = "选中脚本后点击【小精灵】按钮进入小精灵制作界面"Gosub TiShi//小精灵按钮的相对地址bxOpp = 498:byOpp = 47Gosub GetABPointGosub ManManYiDongDelay 2000LeftClick 1Delay 3000Return XiaoJL//功能模块2:制作小精灵Sub ZhiZuoJLTiShiXinXI = "现在您看到的就是制作小精灵的界面"Gosub TiShiTiShiXinXI = "我们先给小精灵加上说明,方便其他人使用"Gosub TiShi//按6下TAB键切换到注释控件KeyPress 9,15KeyPress 13 2SayString "这是我的小精灵注释"Delay 2000TiShiXinXI = "注释加入之后点击【开始制作】按钮之后就会成功制作小精灵" Gosub TiShi//制作小精灵按钮的相对地址bxOpp = 372:byOpp = 390//bxOpp = 452:byOpp = 400Gosub GetABPointGosub ManManYiDongDelay 1000LeftClick 1TiShiXinXI = "教程结束!您的小精灵已经制作成功!"Gosub TiShiReturn ZhiZuoJL//常用:把鼠标从a点慢慢移动到b点Sub ManManYiDongPianYiX = ax-bxPianYiY = ay-byRem YiDongIf PianYiX<>0 or PianYiY<>0YiDongX =0YiDongY =0If PianYiX<>0YiDongX = -abs(PianYiX)/PianYiXEndIfIf PianYiY<>0YiDongY = -abs(PianYiY)/PianYiYEndIfMoveR YiDongX YiDongYPianYiX = PianYiX + YiDongXPianYiY = PianYiY + YiDongYDelay YiDongSuDuGoto YiDongEndIfReturn ManManYidong//常用:提示信息,过3秒自动关闭窗口的方式Sub TiShiCall TiShiObj.Popup(TiShiXinXi,3,"3秒后窗口自动关闭",0)Return TiShi//常用:获取A点和B点的坐标,A点是当前坐标点,B点是目的坐标点Sub GetABPoint//获取A点坐标信息Call GetCursorPos(ax,ay)//获取B点坐标信息,B点坐标=窗口坐标+相对坐标 Plugin hWnd=Window.Foreground()Plugin winRect=Window.GetWindowRect(hWnd)// Call MessageBox(winRect)winPoint = Split(winRect, "|", -1, 1)bx = CInt(winPoint(0)) + bxOppby = CInt(winPoint(1)) + byOppReturn GetABPoint//常用:把鼠标移动到屏幕正中Sub YiDaoZhongJianCall GetScreenResolution(intX,intY)MoveTo intX/2 intY/2Return YiDaoZhongJian//常用:屏幕上画圆Sub 画圆r=300:x0=512:y0=384:x=0:y=0:n=0While n<3.1415926*2x=x0+r*cos(n)y=y0-r*sin(n)MoveTo x yDelay 10n=n+0.03EndWhileReturn 画圆。
运算符与表达式(运算符)
此文为小妖首发于按键精灵论坛。
借百度平台转发,希望能够帮到学按键的朋友。
说完数据类型,本来该说说变量定义的。
不过,按键变量定义很简单。
只要遵循变量名定义就行了。
如果不清楚的直接看官方教程就行了。
小妖就不再啰嗦。
而数组的定义,小妖也有过帖子,这儿直接把帖子贴出来。
不清楚的可以去看看。
关于数组定义问题(仅限于新手对数组定义不明白者,不牵扯高级
运用)
这一期,我们来介绍运算符与表达式。
因为较长,所以分两小节。
第一小节介绍的是运算符,第二小节介绍表达式。
其实这章知识非常多,也非常重要。
我这儿只能作为介绍,而不能作为学习课程。
希望大家知道学习要点之后,自己增加知识点的了解以及具体到按键精灵上调试运用。
这样,才能达到学习的目的。
运算符:运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。
例如:2+3,其操作数是2和3,而运算符则是“+”。
(百度百科)
运算符主要分为:
算术运算符。
字符串运算符(连接运算符)。
关系运算符(比较运算符)。
赋值运算符。
逻辑运算符。
算数运算符:
主要有:乘法(*),除法(/),加法(+),减法(-),整除(\),求余(MOD),乘方(^),负号(-)。
优先级高到低为(并排为同级):
负号(-);
求幕运算符(^);
乘法(*),除法(/);
整除(\);
求余(MOD);
加法(+),减法(-)。
乘方、负号和四则运算(^、+、-、*、/)的运算符大家应该知道。
这儿说整除和求余(\、MOD)。
整除(\):用于两个数相除并返回以整数形式表示的结果。
语法
result = number1\number2 (按键运算符说明)
例:
1.TracePrint 5\2 // 5\2值为2
求余(MOD): 用于两个数值相除并返回其余数。
语法
result = number1 Mod number2(按键运算符说明)
例:
1.TracePrint 5 MOD 2 // 5 MOD 2 值为1
字符串运算符(连接运算符):
连接运算符是指可以将一个或多个文连接为一个组合文本的运算符号。
即使用和号(&) 加入或连接一个或更多文本字符串以产生一串文本。
当然,按键这儿字符串运算符还有一个加号(+)。
和号(&):将两个字符串首尾相连变成一个字符串。
语法
result = expression1 & expression2
result 任意变量。
expression1 任意表达式。
expression2 任意表达式。
例:
1.TracePrint "132" & 123 //只含有数字的字符串与数字合并
2.TracePrint 132 & 123 //两个只含有数字的字符串合并
3.TracePrint 132 & "abc" //数字与字符串合并
调试结果:
脚本我的脚本1.Q ,第1行:132123
脚本我的脚本1.Q ,第2行:132123
脚本我的脚本1.Q ,第3行:132abc
加号(+):如果字符串是数字与字符串合并,则将数字字符串转换为数字并相加。
否则将两个字符串首尾相连变成一个字符串。
例:
1.TracePrint "123" + 123 //只含有数字的字符串与数字合并
2.TracePrint "132" + "123" //两个只含有数字的字符串合并
3.TracePrint 132 + "abc" //数字与字符串合并
调试信息:
脚本我的脚本1.Q ,第1行:246
脚本我的脚本1.Q ,第2行:132123
脚本我的脚本1.Q ,第3行:类型不匹配:'[string: "abc"]',从调试信息,我们会发现,&与+不同的地方就是,如果是数字字符串与数字,+会自动的把它转换成数字并相加。
如果是数字与含有字母的字符串运算的时候会出错,类型不匹配。
关系运算符(比较运算符):
按键共有6个。
和数学的没区别。
返回值上,只有真(true)、假(false)两种。
=(相等):
第一个表达式的值与第二个表达式的值是否相等?
1 =
2 False
<>(不等):
第一个表达式的值与第二个表达式的值是否不等?
1 <>
2 True
1 <> 1 False
<(小于):
第一个表达式的值是否比第二个表达式的值小?
1< 2 True
2< 1 False
1< 1 False
>(大于):
第一个表达式的值是否比第二个表达式的值大?
1 >
2 False
1> 1 False
2 > 1 True
<=(小于或等于):
第一个表达式的值是否小于或等于第二个表达式的值?
1 <=
2 True
1<= 1 True
2<= 1 False
>=(大于或等于):
第一个表达式的值是否大于或等于第二个表达式的值?
1>=1 True
2>= 1 True
赋值运算符:
赋值运算符即赋值语句(=)将运算符右侧的值赋予左侧的变量,其语法如下
variable=value
参数variable可以是任何变量或任何可编写的属性。
参数value可以使用任何文本,常数,表达式或返回值的函数调用。
这儿我们就懒得啰嗦了,前面已经说过。
例子就是
1.Dim i // 定义变量 i
2.i = 0 // 给 i 赋值 0
逻辑运算符:
主要有Not(非)、And(与)、Or(或)、Xor 、Eqv 、Imp 。
我只说主要用到的三个。
其他的,大家自己到命令库里面看或者是网上学习。
Not(非):用于对表达式执行逻辑非运算。
语法
result = Not expression
result 任意数值变量。
expression 任意表达式。
也就是说,任何表达式进过Not 之后,就会得到与它相反的值。
例:
1.TracePrint NOT (1 = 1)
2.TracePrint NOT (1 <> 1)
调试结果:
脚本我的脚本1.Q ,第1行:0
脚本我的脚本1.Q ,第2行:-1
大家都知道,1=1,是正确的,返回值应该是 -1(真)。
加NOT 之后得到的是0(假)。
And(与):用于对两个表达式进行逻辑与运算。
语法
result =expression1 And expression2
result 任意数值变量。
expression1 任意表达式。
expression2 任意表达式。
And(与)运算,两边的表达式中,有一个为假,则运算结果就为假。
例:
1.TracePrint 1 = 1 and 2 = 2 //第一个为真、第二个也为真
2.TracePrint 1 = 2 and 2 = 2 //第一个为真、第二个为假
3.TracePrint 1 = 2 and 2 = 1 //第一个为假、第二个也为假
调试结果:
Or(或):用于对两个表达式进行逻辑或运算。
result = expression1 Or expression2
result 任意数值变量。
expression1 任意表达式。
expression2 任意表达式。
例:
1.TracePrint 1 = 1 or 2 = 2 //第一个为真、第二个也为真
2.TracePrint 1 = 2 or 2 = 2 //第一个为真、第二个为假
3.TracePrint 1 = 2 or 2 = 1 //第一个为假、第二个也为假
调试结果:
脚本我的脚本1.Q ,第1行:-1
脚本我的脚本1.Q ,第2行:-1
脚本我的脚本1.Q ,第3行:0
大家可以看到,只要有一个是真的,那么就是真的。
本章结束。