Golden Pig Script(原飞猪脚本)以按键精灵的教学为主,涉及UiBot、Python、Lua等脚本编程语言。教学内容包括自动化办公脚本、游戏辅助脚本、引流脚本、网页脚本、安卓脚本、IOS脚本、注册脚本、点赞脚本、阅读脚本和网赚脚本等。想制作脚本和学习按钮精灵的朋友可以加按键精灵学习交流群:554127455 学习路上你不再孤单,金猪脚本与你一起成长。
我想在F3按下时执行一个操作,例如:按下F3时,提示F3被按住。当你松开它时,它会提示你不要按住 F3。但是没有命令监控键盘按键是否被按下和释放?那该怎么办?果果脑子里的第一反应是,不如我们用WaitKey命令试试?哦,瞬间觉得自己好聪明~哈哈
然后……
生成了这个代码思路:
1. 进入Do循环(使用Do循环每秒监测一次按钮的状态变化)
2. 使用WaitKey命令获取当前按键的键值
3.判断变量key的值是否等于114(这里114是F3的key值)
如果变量key的值等于114,那么执行你要执行的代码
如果变量key的值不等于114按键精灵如何按时间调用子程序,则不执行
代码:
DoKey=WaitKey() // WaitKey 等待按下任意键 If Key = 114 Then //判断是否按下F3//执行TracePrint “按住F3″Else//不执行TracePrint “Release F3″End IfDelay 1000Loop
复制代码
结果:
执行结果与预期不符?
看到执行结果,果果笑不出来了,所以写了第一次按F3键后放开,这个键的值一直是F3,也就是说不管你放不放f3键, If key 114 Then 这都不是真的。WaitKey 命令可以获取您按下的键,但无法获取该键的状态。按下一次,按下多次,松开,仍然按下,WaitKey命令不区分这些,它返回一个键值。
怎么办怎么办?这时候果果脑子里想了很多,终于想到了api,通过调用api的GetAsyncKeyState函数(Get-get Async-port KeyState-keyboard key state组合起来就是-获取键盘的端口key state) 来获取一个key的指定A状态。根据获取到的状态,可以知道指定的按键是按下还是松开。瞬间觉得自己又变聪明了,哦哦哦哦,有了想法马上行动,先了解一下GetAsyncKeyState函数的声明和返回值:
GetAsyncKeyState函数声明,返回值
Declare Declare Function GetAsyncKeyState Lib “user32” Alias “GetAsyncKeyState” (ByVal vKey As Long) As Integer
返回值 GetAsyncKeyState 返回值等于1,表示按键已被按下,当前被释放
GetAsyncKeyState的返回值等于0,表示key被释放
GetAsyncKeyState的返回值等于-32767按键精灵如何按时间调用子程序,表示按键处于按下状态
说到这里,可能有同学不明白api是神马,那么……什么是api呢?——
API(应用程序编程接口)是预定义的函数,旨在为应用程序和开发人员提供访问基于软件或硬件的一组例程的能力,而无需访问源代码或了解该机制的内部工作细节。
API和系统调用的区别:
系统调用代码都处于内核态,API是操作系统提供的一组函数,通常以库的形式供用户调用。因此,API 代码可能完全是用户空间代码,有些 API 调用系统调用。
白话版解释——
api就是把操作系统上一些不向用户开放的系统命令做成函数,就像一个中介,我们调用api函数,api函数将消息反馈给操作系统。
好激动~,有种组织终于找到方向的感觉。方法和api函数我们都找到了,那怎么用呢?
铛铛铛~代码思路和代码~
代码思路:
1.声明GetAsyncKeyState函数
2.进入Do循环(使用Do循环每秒监测一次按键的状态——通过GetAsyncKeyState函数判断按键的当前状态)
3. 使用GetAsyncKeyState函数获取F3(114)按钮的状态,并将返回值复制到变量x
4.使用select case判断语句判断变量x的值
如果变量 x 的值等于 1,则不执行
如果变量x的值等于0,则不执行
如果变量x的值等于-32767,则执行
代码:
当我们松开按钮时,会导致多一个判断的延迟。因此,返回值1也归类为未按下按钮进行判断。//不执行 Case 0TracePrint “F3 is not按住”//Case – 32767TracePrint “F3 is按住”没有执行 //Execute End SelectDelay 1000Loop
复制代码
结果:
按键状态检测不支持多线程(多线程启动,只检测第一个启动线程中的按键状态监控),不支持同时判断多个按键的状态。
很感动。终于实现了。果果发现api这么厉害后,就迫不及待的去百度,弄到了两把法宝,拿出来分享一下,API函数百科和VB API函数手册(VB api语句可以在按钮中使用)
请登录后发表评论
注册
社交帐号登录