按键精灵if语句 IF 语句问题

按键精灵Q语言基础 - ErBing - 博客园
一、数据类型1.1数据类型可以表示一切的类型variant逻辑类型:boolean (true,false)数学类型: 整数:byte(0-255),integer(-),long(-21亿-21亿) 小数:single,double,currency(货币类型,包含4位小数,-477.7)文字类型:string时间类型:Date(Time)其他类型:null(空)empty(已撤销或未初始化)object(任何对象)
1.2类型转换"123"+"456"="123456""123"+456=579true→-1 flase→0 命令:(强制转换)cbool,cbyte,cint,clong,csng,cdbl,ccur,cdate,cstr数学类型转布尔类型,非0为真
1.3数据的表示逻辑类型:true,flase数学类型: 整数:123456 小数:3.1415926 八进制:&o12345 十六进制:&H1A2B3(&H前缀) E数:3.14E10文字类型:“”时间类型: 紧凑的数据, 22:25:00 TracePrint now() 格式化 ##之间填入 例:#1/1/:00# 特例:TracePrint cdate(1/1/:00)命令:Hex转十六进制 Oct转八进制
二、语言规范命名规则: 标识符必须唯一 标识符只允许由字母或汉字开头 标识符由字母、汉字、数字、下划线组成 标识符含字母的情况下不区分大小写 标识符最长允许255字符,中文不超过59个字 标识符不可以与关键字相同语法与词法: 注释://后面,'后面,/*中间*/ 定义:Dim定义变量,Dim aa(10)定义数组,Const定义常量 表达式:结果=表达式,+-*/命令:call 命令名字(参数),命令名 参数,结果=命令名(参数)
运算符: 数学运算:+-*/\(整数除法)^ mod(余数) 文字运算:+
&(文字拼贴) 逻辑运算:=&& & & &= &= and与 or或 xor异或 eqv等价 imp蕴含 一元运算:-负数 not非 数组:Dim a(5) //和其他语言不一样,有6个
a=array(0,1,2,3,5,8)
UBonund(a)+1获得数组下标 动态数组:Dim a()
ReDim a(2) //之前数据清楚
ReDim Preserve a(5) //保留之前数据
三、语句3.1结构化语句
上下行能产生关联的语句被成为结构化语句。 顺序结构 跳转结构 选择结构 循环结构
Rem 标记命令,可做注释,也可以做Goto跳转的标记3.2If语句
If 1+1=2 Then
TracePrint "表达式成立"
TracePrint "不成立" End If 单行: If 1+1=2 Then TracePrint "表达式成立" 3.3Select语句
只执行一个case块 Select Case 表达式
End Select3.4For语句 For 次数
语句块 Next
For i=2 To 4 Step 1
不写Step默认为1
语句块 Next3.5Do语句 Do
语句块 Loop
Do While 条件表达式
语句块 Loop
Do Util 条件
语句块 Loop
语句块 Loop While 条件
语句块 Loop Util 条件
3.6命令的几种写法 标识符 标识符 参数1,参数2,…… Call 标识符(参数1,参数2,……) Call 标识符() 标识符=标识符(参数1,参数2,……) TracePrint 标识符(参数1,参数2,……)
3.7子过程 Sub 标识符(参数,参数...)
代码块 End Sub
3.8函数 //函数可以有返回值,子过程不可以 Function 标识符(参数,参数...)
代码块 End Function
四、前台4.1前台鼠标命令 MoveTo 100,200 //把鼠标移动到(100,200)这个点上
MoveR 200,300 //之后,鼠标就被移到了(100+200,100+300)处,也就是坐标(300,400)处 LeftClick 5
//在当前鼠标的位置单击鼠标左键5次
LeftDown 1 //在当前鼠标的位置按下鼠标左键
//在当前鼠标的位置弹起鼠标左键
LeftDoubleClick 5
//在当前鼠标的位置双击鼠标左键5次 RightClick 5
RightDown 1
RightUp 1 RightDoubleClick 5 MiddleClick 5
//在当前鼠标的位置单击鼠标中键5次 MouseWheel 1
//把鼠标滚轮向上滚动1格 LockMouse
//锁定鼠标位置 UnlockMouse
//解除锁定鼠标位置 WaitClick
//按任意鼠标键继续
左键32769(按下) 右键32773(按下) 滚轮32777(按下) GetLastClick //检测上次按过的鼠标键 左键32770(弹起)
右键32774(弹起) 滚轮32778(弹起) GetCursorPos mx,my
//把当前鼠标位置的x和y坐标放在变量mx和my中
GetCursorShape // 得到当前鼠标的形状特征
SetSimMode //设置模拟方式(0普通|1硬件|2超级) 4.1前台键盘命令 KeyPress 65,1 //65是A键的按键码,上面的语句表示按A键1次 KeyDown 65,1 // 键盘按住A键1次 KeyUp 65,1
//松开A键1次 Key=WaitKey()
Key=GetLastKey() //检测上次按键4.2前台找图命令 FindPic //在屏幕区域查找指定相似度的图片
FindPic 左上角x坐标,左上角y坐标,右下角x,右下角y,bmp格式图片路径,相似度,返回x,返回y If intX&=0 Then
代码 End If 路径: 24位位图
绝对路径 c:\Windows\notepad.exe
相对路径 .\当前路径
附件 Attachment:\ 分辨率 Plugin.Sys.GetScRX
Plugin.Sys.GetScRY
透明色找图 等图找多图
Function 找多图(图片路径)
图片=Split(图片路径,"|")
For i=0 To ubound(图片)
FindPic 0,0,Plugin.Sys.GetScRX-1,Plugin.Sys.GetScRY-1,"Attachment:\"& 图片路径,1,intX,intY
If IntX&=0 Then
找多图 = i+1
End Function4.3前台颜色命令 cr1=GetPixelColor(x,y) 得到指定点颜色 FindColor 0,0,800,600,"0000FF",x,y
找色 FindCenterColor //在屏幕区域从中心开始查找指定的颜色
FindColorEx 0,0,800,600,"0000FF",查找方式,0.8,x,y //在屏幕区域模糊查找指定的颜色,//查找方式。0为从上往下,从左往右找;1为从中心往外围找 4.4其他命令 Delay 延迟多少毫秒 MsgBox 弹出对话框 InputBox 弹出窗口,返回输入 TracePrint 调试输出 SayString 输入文字 PutAttachment 把当前脚本包含的附件展开到指定的路径下
RunApp "notepad.exe"
启动一个程序或者打开一个文件
ExitScript 脚本退出运行 RestartScript 重新启动脚本运行4.5窗口 窗口句柄=Plugin.Window.Find("Notepad", 0) //查找窗口类名("Notepad")或者标题(0),返回找到的句柄Hwnd 窗口句柄=Plugin.Window.Search("记事本") //遍历符合窗口标题("记事本")的句柄保存到数组(HwndEx)里 窗口句柄=Plugin.Window.Foreground()
//得到当前最前面的窗口句柄 窗口句柄=Plugin.Window.MousePoint()
//下面这句是得到鼠标指向的窗口句柄 Call Plugin.Window.Active(窗口句柄) //激活窗口
Call Plugin.Window.Max(窗口句柄) //最大化
Call Plugin.Window.Min(窗口句柄) //最小化
Call Plugin.Window.Restore(窗口句柄) //还原窗口
Call Plugin.Window.Close(窗口句柄) //关闭窗口
Call Plugin.Window.Show(窗口句柄) //显示窗口
Call Plugin.Window.Hide(窗口句柄) //隐藏窗口
Call Plugin.Window.Top(窗口句柄,0) //置顶或取消置前,0=(置前),1=(取消置前)
Call Plugin.Window.Move(窗口句柄,横坐标,纵坐标) //移动窗口 Call Plugin.Window.Size(窗口句柄,宽度,高度) //改变窗口大小 窗口标题=Plugin.Window.GetText(窗口句柄) //得到标题 Call Plugin.Window.SetText(窗口句柄,"新标题") //设置标题 窗口类名=Plugin.Window.GetClass(窗口句柄) //得到类名 文件路径=Plugin.Window.GetExePath(窗口句柄) //得到程序文件路径 窗口矩形=Plugin.Window.GetWindowRect(窗口句柄) //得到窗口所在屏幕的矩形 客户区矩形=Plugin.Window.GetClientRect(窗口句柄) //得到窗口客户区所在屏幕的矩形 Call Plugin.Window.SetClentSize(窗口句柄,宽度,高度) //改变窗口客户区大小 Call Plugin.Window.SendString(窗口句柄,输入文本) //为指定窗口输入字符串
五、后台 前台操作,就是直接模拟设备向操作系统发送动作,由操作系统报告给窗口,这种方式的一个明显的特点就是他与我们平时操作键盘鼠标几乎一模一样,会对整个系统都产生影响,而且稳定性不佳,因为我们没法确定系统是否将消失投递到我们希望投递到的窗口中。 后台操作是模拟系统直接向目标窗口发送消息,稳定、高效、不影响前台操作。 //键盘模拟
Call Plugin.Bkgnd.KeyPress(Hwnd, 65) Call Plugin.Bkgnd.KeyDown(Hwnd, 65) Call Plugin.Bkgnd.KeyUp(Hwnd, 65) //鼠标模拟 Call Plugin.Bkgnd.LeftClick(Hwnd,10, 10)
//坐标 Call Plugin.Bkgnd.RightClick(Hwnd,10, 10) Call Plugin.Bkgnd.MiddleClick(Hwnd,10, 10) Call Plugin.Bkgnd.LeftDoubleClick(Hwnd,10, 10) Call Plugin.Bkgnd.LeftDown(Hwnd, 10, 10) Call Plugin.Bkgnd.LeftUp(Hwnd,10, 10) Call Plugin.Bkgnd.RightDown(Hwnd, 10, 10) Call Plugin.Bkgnd.RightUp(Hwnd, 10, 10) Call Plugin.Bkgnd.MoveTo(Hwnd, 10, 10)
//找图找色 XY = Plugin.Bkgnd.FindColor(Hwnd, 0, 0, , "0000FF") GetColor = Plugin.Bkgnd.GetPixelColor(Hwnd, 0, 0) //得到指定点颜色 XY = Plugin.Bkgnd.FindColorEx(Hwnd, 0, 0, , "0000FF", 0, 0.9) //模糊找色 XY = Plugin.Bkgnd.FindCenterColor(Hwnd, 0, 0, , "0000FF")
//中心找色 XY = Plugin.Bkgnd.FindPic(Hwnd, 0, 0, , "C:\PIC.bmp", 查找方向, 0.9)
//查找方向:0: 从左到右,从上到下1: 从左到右,从下到上2: 从右到左,从上到下 3: 从右到左,从下到上
XY = Plugin.Bkgnd.FindMultiPic(Hwnd, 0, 0, , "C:\pic1.bmp|D:\pic2.bmp", 0, 0.9) //区域找多图 iCoord = Plugin.Bkgnd.FindWordShape(Hwnd,0,0,,"我的电脑", "宋体", 字号, 查找方向, 1.0)
//区域找字 iCoord = Plugin.Bkgnd.FindColorBlock(Hwnd,0,0,00FF",颜色块宽度, 颜色块高度, 查找方向, 1.0)
//区域找色块 六、文件 Call Plugin.File.WriteINI("小节名", "键名", "键值", "C:\Config.ini") 键值 = Plugin.File.ReadINI("小节名", "键名", "C:\Config.ini")
Text = Plugin.File.ReadFileEx("C:\Config.txt") //读出文本内容 Call Plugin.File.WriteFileEx("C:\Config.txt", "内容")
Call Plugin.File.CopyFile("C:\Config.ini", "D:\Config.ini") Call Plugin.File.DeleteFile("C:\Config.ini")
Call Plugin.File.MoveFile("D:\Config.ini", "C:\Config.ini") Call Plugin.File.ReNameFile("C:\Config.ini", "C:\Config.txt")
IsFile = Plugin.File.IsFileExist("C:\Config.ini")
Call Plugin.File.CreateFolder("C:\Plugin")
Call Plugin.File.DeleteFolder("C:\Plugin")
七、交互 用户自定义变量
小精灵会显示并可修改 UserVar var1=30 "当HP<多少%时,使用红药"
//格式: UserVar {变量}={默认值} {注释}
UserVar var2="内容" "文本" UserVar va3=DropList{"第一项标题":"第一项值"|"第二项标题":"第二项值"}=默认选项 "注释" UserVar va4=DropList{"第一项标题":111|"第二项标题":222}=1 "注释"你的位置:
if嵌套语句问题,新手求助
11:30:22 |
来源: 按键精灵资源站
一个关于时间日期的脚本,主要是想实现输出当天日期 比如,if嵌套语句好像不正确
Y = Year(Date) : Mon = Month(Date) : D = Day(Date)
If Mon & 9 and D&9 Then
SJ=Y&&0&Mon&&0&D
ElseIf Mon&9 and D&9 Then
& & & & SJ=Y&&0&Mon&D
& & & & End If
ElseIf Mon&9 and D&9 Then
& & & & & & & & SJ=Y&Mon&&0&D
& & & & End If
& && && && && & ElseIf Mon&9 and D&9 Then
& & & && & SJ=Y&Mon&D
& & End If
各位大神帮帮忙啦判断语句失灵了 _ 综合讨论 - 按键精灵论坛
软件版本:2014.05软件大小:21.6M更新时间:07-04
软件版本:3.3.0软件大小:62.5M更新时间:5-24
软件版本:1.3.3软件大小:29.2M更新时间:06-14
软件版本:1.1.0软件大小:12.3M更新时间:12-29
查看: 379|回复: 2
按键精灵开发者1级可通过提升认证等级来升级勋章:rz.anjian.com
n=Plugin.GetSysInfo.GetHDDSerialNumberMessageBox n & &,Ctrl+C复制机器码,请把这个发给作者。&注册码 = n + 1343552 + 223351 * 2013 //这个算法必须自己改,别让人知道。 MessageBox (注册码)输入验证码 = InputBox(&请输入验证码!&)If 注册码 && 输入验证码 Then &&&&MessageBox (&验证错误,不可以使用脚本。&)&&&&ExitScript&&&&Else &&&&MessageBox (&验证正确,欢迎使用.&)End If帮别人脚本加的一个判断 前面都对的 就是到IF 语句的时候输入什么都是验证错误,就是输入对的还是验证错误,防止我自己算错让电脑算的还是错误谁能知道为什么啊
过大年勋章俩小福娃给大家拜年啦!按键精灵开发者4级可通过提升认证等级来升级勋章:rz.anjian.com学有所成学有所成勋章,新手步入按键学堂的第一枚勋章
If 注册码 && 输入验证码 Then
输入验证码
肯定不是一个数据类型,你要转换一下才可以。
闽网文 (-037号你的位置:
关于多条件判断语句
12:47:06 |
来源: 按键精灵资源站
关于多条件判断语句
昨天针对某个条件设置了一下。发现无法完全执行。
情况如下。
如果A点的颜色等于X色,则执行A动作
如果B点的颜色等于Y色,则执行B动作
如果C点的颜色等于V色,则执行B动作& &【出问题。】
代码如下,求高手帮忙看看解答。[code]Rem xuanguai
Call Plugin.Bkgnd.KeyPress(a, 112)
IfColor 457+Ux,63+Uy,&83AAB8&,0 Then
Goto xuanguai
IfColor 454+Ux,30+Uy,&2230AB&,0 Then
Rem gongji
Call Plugin.Bkgnd.KeyPress(a, 50)
Delay 3000
Call Plugin.Bkgnd.KeyPress(a, 51)
IfColor 448+Ux,30+Uy,&2230AB&,0 Then& &【出现问题】
Goto gongji
Goto xuanguai
End if[/code]按键精灵 IF 语句问题_百度知道
按键精灵 IF 语句问题
A = GetPixelColor(690, 1150)
If A = &FFFFFF& Then
TouchDown 450,650,1
If A = &5A5AFF& Then
Tap 300, 1100
Delay 2000
Function _Rnd(num)
_Rnd = Int((num + 1) * Rnd())
我有更好的答案
题主做的是按键精灵随机取名吗?修改了一下代码,如下Dim&ADo&&&&A&=&GetPixelColor(690,&1150)&&&&If&A&=&&FFFFFF&&Then&&&&&&&&&TouchDown&450,650,1&&&&ElseIf&A&=&&5A5AFF&&Then&&&&&&&&&Tap&300,&1100&&&&&&&&&Delay&2000&&&&&&&&InputText&_Rnd_Name()&&&&End&IfLoopFunction&_Rnd(num)&&&&Randomize&&&&_Rnd&=&Int((num&+&1)&*&Rnd())&End&FunctionFunction&_Rnd_Name()&&&&Dim&B&=&Array(&张三&,&&李四&)&&&&_Rnd_Name&=&B(_Rnd(1))End&Function
大神 太感谢了 完全正确要不我再随便提个问题 你去回答我来采纳
给你送分好不好太感谢你了
不客气,送分不用了,记得采纳回答即可。另外你如果是随机取名的话,写2个函数有点多余了,你可以组合成1个函数
能帮忙优化一下吗?
Function _Rnd_Name(num)Dim B = Array(&张三&, &李四&)Randomizer = Int((num + 1) * Rnd()) _Rnd_Name = B(r)End Function
错误:第4行:名称 r 没有定义。错误码=1996错误:第5行:名称 r 没有定义。错误码=1996
在前面加个 dim r
采纳率:51%
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。}

我要回帖

更多关于 按键精灵循环语句 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信