怎么用按键精灵官网一直按W键

怎样才能让脚本在指定画面之前一直等待_按键精灵吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
怎样才能让脚本在指定画面之前一直等待收藏
怎样才能让脚本在指定画面之前一直等待
while truedelay 3000findpicif intx & 0thenexit whikeendifwend
exit whikeendif 这两个后面应该怎么写,新手,谢谢! 例如下边这个。。。while true delay 3000 FindPic 0,0,,"Attachment:\极速天始游戏2.bmp",0.9, intX,intYIf intX & 0 And intY & 0 Then MoveTo intX, intY Delay 1000 LeftClick 1 End If then exit whike endif wend
没看明白。
循环找图,找不到指定画面前一直循环
楼上正解,当找不到图的时候,就一直找图,else后面的是退出循环的命令,按照楼主的意思,这里是不需要改动的。
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或我设置按键精灵后台按住w键不动 高手请教-中国学网-中国IT综合门户网站-提供健康,养生,留学,移民,创业,汽车等信息
> 信息中心 >
我设置按键精灵后台按住w键不动 高手请教
来源:互联网 发表时间: 0:01:22 责任编辑:王亮字体:
为了帮助网友解决“我设置按键精灵后台按住w键不动 高手请教”相关的问题,中国学网通过互联网对“我设置按键精灵后台按住w键不动 高手请教”相关的解决方案进行了整理,用户详细问题包括:RT,我想知道:我设置按键精灵后台按住w键不动 高手请教,具体解决方案如下:解决方案1: 此为后台按键脚本Plugin hwnd = Window.GetKeyFocusWnd()UserVar ys=5 按键间隔(秒)delay 2000rem startPlugin Bkgnd.KeyPress(hwnd,87)delay ys*1000goto start第一句,获得具有输入焦点的窗口句柄第二句,设置时间间隔第三句,延时2秒,执行下面的循环下面,按键循环,后台向窗口发送W键使用时先将游戏窗口置于前台,使之处于激活状态启动脚本即可注意:有些3D游戏不支持后台按键,这个脚本也可能不好用,我没试过
相关文章:
最新添加资讯
24小时热门资讯
Copyright © 2004- All Rights Reserved. 中国学网 版权所有
京ICP备号-1 京公网安备02号按键精灵的原理和编写方法(1)
我的图书馆
按键精灵的原理和编写方法(1)
按键精灵的原理和编写方法(1)&&
16:27:40|&&分类:
|字号&订阅
按键精灵是一类很普遍的游戏插件,wow raid过程中部分职业的某些操作就需要此类插件(文俊的牧师号在打某些BOSS时驱散用到过)。类似的插件无非是用程序来模拟重复性的键盘动作。
游戏中进行键盘操作的程序可以理解为:
按下某键——键盘驱动程序将此事件传递给操作系统——操作系统将此事件插入消息队列——此消息被发送到当前活动窗口。
按照这个过程来理解程序,剩下的只不过要将抽象化的语句翻译成代码。当然很多过程编程工具(.NET)会自动处理,而不需你去理会。(如如何插入消息队列,消息队列的管理,无用对象的释放)。
第一个问题,按下如何用程序来模拟在键盘上按下某键。
日常操作中,当用户在键盘上按下某个按键时,键盘内芯片会检测到这个动作,并将这个信号传递给计算机。对于每个按键,键盘分配给它不同的编码,称做键盘扫描码。当敲击键盘时,底层上实际传递给计算机消息队列的是该按键的键盘扫描码,所以知道了欲按键的扫描码,就可以将该信息传递给电脑,从而达到模拟按键的功能。
第二个问题,键盘驱动程序如何把此事件传递给操作系统。
解决第一个问题的关键是必须知道按键的键盘扫描码,但是仅仅知道键盘扫描码不够。因为操作系统需要得到的信息的并不是键盘扫描码。因为键盘扫描码是跟具体的硬件相关的,同一个键在不同键盘上的扫描码有可能不同。键盘控制器将这个扫描码传给计算机,然后交给键盘驱动程序。键盘驱动程序会完成相关的工作,并把这个扫描码转换为键盘虚拟码。键盘虚拟码是针对键盘扫描码的非通用性所提出。尽管出于硬件原因,同一个按键可能有不同的扫描码,但是无论什么键盘,同一个按键的虚拟码总是相同的,这样程序就可以识别了。简单点说,虚拟码就是我们经常可以看到的像VK_A,VK_B这样的常数,比如键a的虚拟码(字母大小写虽然是同一个键,但是虚拟码不同)是&H61(即十进制的97,一般用16进制来表示虚拟码)。当键盘驱动程序把扫描码转换为虚拟码后,会把这个键盘操作的扫描码和虚拟码还有其它信息一起传递给操作系统。
操作系统在得到这个信息后,会对消息进行封装,然后把这个键盘消息插入到消息列队(这个过程则不需要我们理会)。最后,这个键盘消息最终会被送到当前的活动窗口那里,活动窗口所在的应用程序接收到这个消息后,就知道键盘上哪个键被按下,也就可以根据按键决定该作出什么响应返回给用户了。&
明白整个过程后,然后就可以进行编程实现模拟键盘按键操作了。最直接的模拟方法是:直接伪造一个键盘消息发给目标程序。因为键盘信息最终发送的目标程序而引起目标程序的响应。
WINDOWS提供了消息函数(API函数(非托管函数)),这里要用到的主要是:
PostMessage(将一条消息投递到指定窗口的消息队列),
SendMessage(调用一个窗口的窗口函数,将一条消息发给那个窗口),
PostMessage函数和SendMessage函数的声明一样,均能向目标程序发送消息,所不同的返回值不同。
Declare Function PostMessage& Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any)
Declare Function SendMessage& Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any)&&&& 若成功发送信息,PostMessage函数的返回值为TURE,SendMessage函数的返回值则根据发送的信息有不同的返回值()。这里只需向目标程序发送按键信息,而不需要根据该信息的返回值进行下一步操作,所以用PostMessage函数。PostMessage函数的参数的含义跟SendMessage函数大致相同。这里主要用到的WMsg参数的常量见()
可以用到的常量很多,这里要用到以下几个:
WM_KEYDOW&& 按下一个键
WM_KEYUP&&&&&& 释放一个键
WM_SYSKEYDOWN& 当用户按住ALT键同时按下其它键时提交此消息给拥有焦点的窗口
WM_SYSKEYUP&&&&&&& 当用户释放一个键同时ALT 键还按着时提交此消息给拥有焦点的窗口
PostMessage函数还有2个参数,WParam,IParam。在一个键盘消息中,前一个参数的意义较为简单,表示欲模拟的按键的虚拟码(如按键A的的虚拟码为VK_A,欲模拟这个按键时,WParam的值即为VK_A)。而后一个参数的则较为复杂,因为它包含了多个信息,一般的模拟过程中可以把它设置为0,但如果你想要模拟更真实,那么有必要对这个参数进行设置。lParam 是一个long类型的参数,内存中占4个字节,二进制格式为
00 &&该参数的的0-15(从右往左的16位)位表示键的发送次数等扩展信息,16-23位为按键的扫描码,24-31位表示是按下键还是释放键。此参数一般写成16进制格式,即为
&H00 00 00 00 ,第0-15位一般为&H0001,如果是按下键,那么24-31位为&H00,释放键那么24-31位则为&HC0,16-23位的扫描码的得到需要用到一个API函数MapVirtualKey,这个函数可以将虚拟码转换为扫描码,或将扫描码转换为虚拟码,还可以把虚拟码转换为对应字符的ASCII码。&
MapVirtualKey的声明如下:
Declare Function MapVirtualKey Lib "user32" Alias "MapVirtualKeyA" (ByVal wCode As Long, ByVal wMapType As Long) As Long, 其中,
wCode& 类型为Long,欲转换的源字符或扫描码
wMapType& 类型为Long,控制映射类型,取值为0,1,2,0表示wCode是个虚拟键码。函数返回相应的扫描码,1表示wCode是个扫描码。函数返回相应的虚拟键码,2表示wCode是个虚拟键码。函数返回相应的ASCII值(未加Shift组合键)。
函数返回值为Long型,其结果取决于wMapType参数
如下函数是利用MapVirtualKey函数得到一个虚拟按键的扫描码,进而构造IParam参数,从而向记事本模拟发送一个A
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _&&& ByVal lpClassName As String, _&&& ByVal lpWindowName As String) As LongPrivate Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" ( _&&& ByVal hWnd1 As Long, ByVal hWnd2 As Long, _&&& ByVal lpsz1 As String, ByVal lpsz2 As String) As Long&Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" ( _&&& ByVal hWnd As Long, _&&& ByVal wMsg As Long, _&&& ByVal wParam As Long, lParam As Any) As LongPrivate Declare Function MapVirtualKey Lib "user32" Alias "MapVirtualKeyA" ( _&&& ByVal wCode As Long, ByVal wMapType As Long) As Long&Private Const WM_KEYDOWN = &H100Private Const WM_KEYUP = &H101Private Const WM_CHAR = &H102Private Const VK_A = &H41
Function MakeIParam(Byval VirtualKey as long,Byval Flag as long) As Long
'VirtualKey表示按键虚拟码,Flag表示按下键还是释放键。
Dim s As String
Dim FirstByte As string
If Flag=WM_KEYDOWN Then
&&& FirstByte="00"&&& '用来表示IParam的第24位至31位,先用字符串储存,后转换为16进制
&&& FirstByte="C0"
Dim ScanCode As long
ScanCode=MapVirtuealKey(VIrtualKey,0) '使用API函数前需先声明
Dim SecondByte as string&&
SecondByte=Right("00"&Hex(ScanCode),2)& '用来表示IParam的第16位至23位
s=FirstByte&SecondByte&"0001"
MakeIParam=Val("&H"&s)
End Function
Private Sub Form_Load()Dim hWnd&Dim hEdit&hWnd = FindWindow("notepad", "无标题 - 记事本")hEdit = FindWindowEx(hWnd, 0, "Edit", vbNullString)
If hWnd = 0 Or hEdit = 0 Then& MsgBox "donot find,sorry!"Else& PostMessage hEdit, WM_CHAR, Asc("A"), MakeIparam(VK_A, WM_KEYDOWN) '输入字符AEnd IfEnd Sub
FindWindow 和FindWindowEx函数用来查找记事本编辑框的句柄。(句柄可以解释为系统分配给每个资源的唯一标识)这种方法通过局部键盘消息来模拟按键,它可以实现后台按键,也就是说他对你的前台操作不会有什么影响。比如,你可以用这个方法做个程序在游戏中模拟按键来不断地执行某些重复的操作,无论目标程序是否获得焦点都没有影响,这就是后台模拟按键的原理。
当然模拟按键的方法不止一种!
发表评论:
馆藏&21260
TA的最新馆藏君,已阅读到文档的结尾了呢~~
按键精灵脚本制作教程:如何实现同时按多个键
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
按键精灵脚本制作教程:如何实现同时按多个键
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口

我要回帖

更多关于 按键精灵 的文章

 

随机推荐