学习游戏脚本制作:按键精灵键鼠同步器源码分享

合集下载

按键精灵VBS脚本实例源码及详解

按键精灵VBS脚本实例源码及详解

【1.基本例子介绍(推荐)】【2.人气工具百宝箱之天龙八部2键盘连按】【3.自动打怪例子】【4.用盒子制作自动加血类脚本的方法】【5、【QQ幻想世界】自动打怪v1.0版】[Relative]SetupOCXFile=[Comment]Content=[Script]//〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓★描★述★〓〓〓〓〓〓〓〓〓〓〓〓☆〓〓////————————————————<[QQ幻想世界自动打怪v1.0版][作者]一只鱼>//游戏设置:———[Tab]找怪热键———[1]打怪热键———[空格]捡物热键//〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓★说★明★〓〓〓〓〓〓〓〓〓〓〓〓☆〓〓////——————————————————————<创建日期:2010/05/31>//〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓★开★始★〓〓〓〓〓〓〓〓〓〓〓〓☆〓〓////——————————————————————<休息计时器归零>n = 0Rem 《开始》//——————————————————————<找怪热键“Tab”>KeyPress 9,1Delay 100//——————————————————————<在选怪的过程中利用时间空隙捡物> KeyPress 32,1//——————————————————————<打怪计时器归零>i = 0Rem 《打怪》//——————————————————————<打怪计时器计数增加>i += 1//——————————————————————<捡物加打怪延时,有效利用延时。

> Delay 1000//——————————————————————<打怪热键“1”>KeyPress 49,1//————————<循环1次打怪,耗时1秒。

这里可以设置打怪时间[10次10秒]>If i >= 10Delay 500Goto 《打怪结束》End IfGoto 《打怪》Rem 《打怪结束》//——————————————————————<捡物热键“空格”>KeyPress 32,1//——————————————————————<捡物延时>Delay 1000//——————————————————————<打死60只怪后坐地休息>If n >= 60Delay 1000//——————————————————————<坐地休息热键“=”>KeyPress 187,1//——————————————————————<坐地休息60秒>t = 60While t <> 0Delay 1000t -= 1Wend//——————————————————————<休息计时器归零>n = 0Else//——————————————————————<休息计时器计数增加>n += 1End If//——————————————————————<重新开始执行>Goto 《开始》//〓〓〓〓〓〓〓〓〓〓〓〓〓〓★结★束★〓〓〓〓〓〓〓〓〓〓〓〓☆〓〓//制作《QQ幻想世界》纯硬件操作自动打怪脚本例子一、制作思路流程:1.首先Tab热键选怪2.在选怪空隙中捡物1次3.开始打怪4.打怪等待时间(默认10次[1次1秒])5.打怪结束后捡物1次6.打死60只怪后坐地休息60秒7.返回重新开始二、游戏热键设置:游戏设置:——[Tab]找怪热键——[1]打怪热键——[空格]捡物热键——[8]休息热键三、脚本制作过程:1.首先Tab热键选怪Rem 《开始》//——————————————————————<找怪热键>KeyPress 9,1Delay 1002.在选怪空隙中捡物1次//——————————————————————<在选怪的过程中利用时间空隙捡物>KeyPress 32,1Delay 5003.开始打怪Rem 《打怪》//——————————————————————<捡物加打怪延时,有效利用延时。

学习怎么用按键精灵制作游戏辅助——脚本源代码干货分享

学习怎么用按键精灵制作游戏辅助——脚本源代码干货分享

学习怎么用按键精灵制作游戏辅助——脚本源代码干货分享一、用按键精灵确定人物朝向(以剑灵自动寻路为例)的代码在剑灵右上角的小地图里找色/找图,箭头坐标存储在(x1,y1),箭尾坐标存储在(x2,y2) FindColor1200,0,1920,300,"箭头颜色",x1,y1If x1 > 0 And y1> 0 ThenEnd IfFindColor1200,0,1920,300,"箭尾颜色",x2,y2If x1 > 0 And y1> 0 ThenEnd If'计算斜率/正切值斜率= (y1 - y2) / (x1 -x2)'计算角度角度= Atn(斜率)二、用按键精灵解决用户密码泄露问题的代码Function 加解密(源文件, 秘钥)Dim Z, iDim A, B, C加解密= ""If Len(源文件) = 0 Then’如果密码为空,则初始化为空加解密= ""Exit FunctionEnd If'调用Rnd函数使以后Rnd函数所产生的Rnd为相同的伪随机数列Z = Rnd(-秘钥)For i = 1 To Len(源文件)’将密码字符串一个一个字符通过加密,转换成另一个字符C = Mid(源文件, i, 1)A = Asc(C)B = Int(126 * Rnd) And&H7F’这里的&H7F,是指生成的伪随机代码,只取7位,以免数据溢出A = A Xor B’Xor是可逆的,第一次运行时是得到加密后的数据,再运行一次是得到解密后的数据C = Chr(A)加解密= 加解密+ CNextEnd Function举个例子吧~Function 加解密(源文件, 秘钥)Dim Z, iDim A, B, C加解密= ""If Len(源文件) = 0 Then加解密= ""Exit FunctionEnd If'调用Rnd函数使以后Rnd函数所产生的Rnd为相同的伪随机数列Z = Rnd(-密钥)For i = 1 To Len(源文件)C = Mid(源文件, i, 1)A = Asc(C)B = Int(126 * Rnd) And&H7FA = A Xor BC = Chr(A)加解密= 加解密+ CNextEnd FunctionEvent Form1.Load//获取小节名(如"e1df741f-d5ec-4ad7-969d-adb139c6a24f"),同一个Q文件生成的小节名不变a = GetMacroID()//获取到当前脚本/小精灵de ID加密文件=Plugin.File.ReadINI("e1df741f-d5ec-4ad7-969d-adb139c6a24f","Form1 .InputBox2.T ext", ".\uservar.ini")解密文件= 加解密(加密文件, 1234567890)'这里的1234567890是假使的密钥,可以修改,注意保密Form1.InputBox2.T ext = 解密文件End Event//写入密码信息源文件= Form1.InputBox2.T ext加密文件= 加解密(源文件, 1234567890)CallPlugin.File.WriteINI("e1df741f-d5ec-4ad7-969d-adb139c6a24f","Form1.InputBox2.T ext", 加密文件, ".\uservar.ini")//输出信息RunApp "notepad.exe"SayString Form1.InputBox1.T extKeyPress "Enter", 1SayString 源文件三、按键精灵快速排序的代码su = "6|1|2|7|9|3|4|5|10|8"su=Split(su, "|")L = UBound(su)Call ks(0, L)Function ks(L, B)If L > B ThenExit FunctionEnd If //判断数组上标下标是否超出范围i = Lj = Bkey =int( su(L) ) //数组第一位提取作为基数While j>iWhile int ( su(j)) >= key and j > i //要先从最右边开始找找到第一个小于key的数这里添加的j>i的判断是为了防止j的值不断递减导致下标越界j = j - 1WendWhile int (su(i)) <= key and j > i //从最左边开始找找到第一个大于key的数(这里的字符串数组需要转换为数值型)i = i + 1WendIf j>i then // 将和基数key对比得到的两个数对换将大于key的值往右边放小于key的值往左边放T = su(i)su(i) = su(j)su(j) = TEnd IfWend // 这个While 循环当i=j 第一轮比较完退出su(L) = su(i) // 重新设置数组第一个元素为基数su(i) = key// 基数归位(排完一轮之后左边的数<基数<右边的数那么基数就到了排序中它该在的位置。

新版按键精灵X版底层使用代码分享

新版按键精灵X版底层使用代码分享

新版按键精灵X版底层使⽤代码分享按键精灵X亮点多多,这⾥分四⽅⾯简要说明⼀下:1、性能提升:代码⾏效率提升70%以上,函数调⽤效率提升40%以上,同脚本整体性能⽐按键精灵2014提升10%以上。

2、体验更好:调试反应迅速,多次调试内存不会导致内存泄漏积累、CPU占⽤过⾼的情况。

3、更加稳定:内存占⽤有所改善,调试、运⾏不容易崩溃,不会因为杀软或优化的缘故导致脚本⽆法执⾏。

4、功能更强:QUI系统优化、附件系统优化、标准库重做、多线程系统优化,功能⽐2014版更强⼤。

获取窗⼝焦点1 /***********2 *获取窗⼝焦点(*底层识别)3 ************/4 Function windowsIn()5 //获取窗⼝句柄6 Hwnd = Window.Find("WeChatMainWndForPC", "微信")7 //窗⼝复原8 Window.Restore (Hwnd)9 //窗⼝移动10 Window.Move(Hwnd, 300, 200)11 //重设窗⼝⼤⼩12 Window.SetClientSize(Hwnd, 850, 795)13 //获取窗⼝坐标14 sRect = Window.GetWindowRect(Hwnd)15 //MsgBox "得到窗⼝句柄的边框⼤⼩(包括标题栏)为:"& sRect16 //下⾯这句⽤于分割字符串,将横坐标和纵坐标分成两个字符串17 MyArray = Split(sRect, "|")18 //下⾯这句将字符串转换成数值19 W1 = Clng(MyArray(1)): H1 = Clng(MyArray(2))20 W2 = Clng(MyArray(3)) : H2 = Clng(MyArray(4))21 //MsgBox "边框⼤⼩: " & W2-W1 & "" & H2-H122 sosow=W1+11723 sosoh = H1 + 2624 TracePrint W1 & "::" & H1 & "::" & W2 & "::" & H225 End FunctionView Code⼤漠绑定1 /*****************2 **⼤漠绑定插件命令(*底层识别)3 *******************/4 Function findOcr()5 dm_ret = dm.SetDict(0, GetResPath()&"dm.txt")6 dm_ret = dm.GetClientSize(Hwnd,W2-W1,H2-H1)7 dm_ret = dm.BindWindow(Hwnd, "gdi", "normal", "normal", 0)8 Delay 2009 If dm_ret = 0 Then10 TracePrint ("⼤漠界⾯綁定失败")11 Return -112 Exit Function13 Else14 TracePrint ("⼤漠界⾯綁定成功")15 Return 016 End If17 End FunctionView Code⼤漠识字封装1 /*****************2 **⼤漠识字命令(*底层识别)3 *daMoFindOcr(x1,y1,x2,y2)4 *******************/5 Function daMoFindOcr(d1_x1,d1_y1,d1_x2,d1_y2)6 Dim d1_s = dm.Ocr(d1_x1,d1_y1,d1_x2,d1_y2,"727272-202020|000000-eeeeee",0.9)7 TracePrint (d1_s)8 Return d1_s9 End FunctionView Code⼤漠识图封装1 /*****************2 **⼤漠识图命令(*底层识别)3 *dm_findAllPic(x1,y1,x2,y2)4 *******************/5 Function dm_findPic(d3_x1, d3_x2, d3_y1, d3_y2, d3_picUrl)6 Dim d3_dm_ret, d3_intX,d3_intY, d3_count, d3_sss, d3_x, d3_y7 d3_dm_ret = dm.FindPic(d3_x1, d3_x2, d3_y1, d3_y2,GetResPath()& d3_picUrl,"000000",0.9,0,d3_intX,d3_intY)8 If d3_intX >= 0and d3_intY >= 0 Then9 d3_intX = d3_intX10 d3_intY = d3_intY11 TracePrint (d3_intX & "+dm_findPic+" & d3_intY)12 Return 0,d3_intX,d3_intY13 Else14 TracePrint ("-1,-1,-1")15 Return -1,-1,-116 End If17 End FunctionView Code⼤漠全屏识图封装1 /*****************2 **⼤漠识图命令全局(*底层识别)3 *dm_findAllPic(x1,y1,x2,y2)4 *******************/5 Function dm_findAllPic(d2_x1, d2_y1, d2_x2, d2_y2, d2_picUrl)6 dim d2_num = 07 Dim d2_picXY(10)8 Dim d2_daozhangID,d2_shoukuanW,d2_shoukuanH9 Do10 d2_daozhangID,d2_shoukuanW,d2_shoukuanH= dm_findPic(d2_x1,d2_y1,d2_x2,d2_y2,d2_picurl)11 If d2_daozhangID = 0 Then12 d2_num = d2_num + 113 Dim d2_arrayin(1)14 d2_arrayin(d2_shoukuanW)=d2_shoukuanH15 d2_picXY(d2_num)=d2_arrayin16 //x1 = shoukuanW17 d2_y1 = d2_shoukuanH + 2018 TracePrint (d2_x1 & d2_y1 & d2_x2 & d2_y2)19 TracePrint ( "找到" & d2_num & "个,坐标为:"& d2_shoukuanW& d2_shoukuanH)20 End If21 Loop While d2_daozhangID= 022 //TracePrint ( "找到" & num & "个,坐标为:"& piczuobiaoji)23 For Each d2_k, d2_v In d2_picXY24 TracePrint d2_k, d2_v25 Next26 Return d2_num,d2_picXY27 End FunctionView Code最后:按键精灵X版最新版,⾸次将底层转为基于lua,使得代码书写更为⽅便,使⽤流畅度⼤⼤提升!推荐两个插件:1. :(:放在上边显⽰密码)(开源代码:)⼤兵插件(DBSoft.dll)为⼤兵软件系列软件之⼀,由dabingrain⽤VB6SP6,WINXP系统下写的COM型ActiveX Dll ,⼤部分软件可以引⽤使⽤。

按键精灵网游高级脚本编写教程

按键精灵网游高级脚本编写教程

献给热爱按键精灵的广大爱好者按键精灵学习教程一、键盘命令(2~5页)二、鼠标命令(5~13页)三、控制命令(13~22页)四、颜色/图像命令(22~28页)五、其他命令(28~355页)五、网游脚本实例(35~最后)一、键盘命令1.1.Loop1.1.2.3.MouseWheel 11.2.3.MouseWheel 14.1.脚本例子:语法) 复制代码1.命令名称:RestoreMousePos 恢复上次保存的鼠标位置命令功能:保存当前鼠标位置命令参数:无返回值:无脚本例子:语法) 复制代码1.SaveMousePos1.LoopLoopLoopLoopLoop 1.1.1.则命令功能:判断表达式命令参数:参数1 条件型,表达式返回值:无脚本例子:语法) 复制代码1.例子1:2.i=03.If i=0 Then4.Msgbox "条件判断符合被通过!!"5.End If1.1.可当注释,也可以为Goto跳转指令作标记2.Rem脚本开始脚本例子:语法) 复制代码命令名称:RestartScript 重新启动脚本运行命令功能:重新启动脚本运行命令参数:无返回值:无脚本例子:语法) 复制代码1.For i=0 to 22.Delay10003.Call0, 1024, 768, "屏幕内容填写" & i, "0000FF")4.NextRestartScript1.则循环命令功能:条件循环命令参数:参数1 条件型,循环条件返回值:无脚本例子:语法) 复制代码1.i=02.While i=03.Msgbox "我停不下来啦!!快住手"4.Wend1.1.1.,则默认展开到按键精灵所在的文件夹中2.mp。

如果不指定要释放的文件,则默认释放所有文件3.PutAttachment "c:\","*.bmp"4.plugin","*.dll"1.,则默认展开到按键精灵所在的文件夹中2.mp。

按键精灵教程

按键精灵教程
Gosub 提示
TiShiXinXI = "当您按下脚本的启动热键 F10 "&vbCrLf&"脚本即可帮你模拟按键输入 A "
Gosub 提示
TiShiXinXI = "本教程演示完毕!"&vbCrLf&"快点试试您的第一个脚本吧!"
Gosub 提示
Gosub GetABPoint
Gosub 慢慢移动
LeftClick 1
Delay 3000
LeftClick 1
Return 介绍1
//功能模块3:脚本编辑器界面,介绍鼠标命令的使用
Sub 介绍2
TiShiXinXI = "请看鼠标命令面板"&vbCrLf&"可以模拟鼠标的操作"
Return 提示
//常用:获取A点和B点的坐标,A点是当前坐标点,B点是目的坐标点
Sub GetABPoint
//获取A点坐标信息
VBSCall GetCursorPos(ax,ay)
//获取B点坐标信息,B点坐标 = 窗口坐标 + 相对坐标
Plugin hWnd=Window.Foreground()
Gosub 慢慢移动
Delay 2000
LeftClick 1
// Delay 1000
//打开了脚本编辑器,介绍脚本编辑器的功能
TiShiXinXI = "现在您看到的是脚本编辑界面"&vbCrLf&"这里是创造脚本的舞台"
Gosub 提示
Gosub 提示

按键精灵脚本制作教程(全)

按键精灵脚本制作教程(全)

按键精灵脚本制作教程(全)一、前言所谓游戏外挂,其实是一种游戏外辅程序,它可以协助玩家自动产生游戏动作、修改游戏网络数据包以及修改游戏内存数据等,以实现玩家用最少的时间和金钱去完成功力升级和过关斩将。

虽然,现在对游戏外挂程序的“合法”身份众说纷纭,在这里我不想对此发表任何个人意见,让时间去说明一切吧。

不管游戏外挂程序是不是“合法”身份,但是它却是具有一定的技术含量的,在这些小小程序中使用了许多高端技术,如拦截Sock技术、拦截API技术、模拟键盘与鼠标技术、直接修改程序内存技术等等。

本文将对常见的游戏外挂中使用的技术进行全面剖析。

二、认识外挂游戏外挂的历史可以追溯到单机版游戏时代,只不过当时它使用了另一个更通俗易懂的名字??游戏修改器。

它可以在游戏中追踪锁定游戏主人公的各项能力数值。

这样玩家在游戏中可以达到主角不掉血、不耗费魔法、不消耗金钱等目的。

这样降低了游戏的难度,使得玩家更容易通关。

随着网络游戏的时代的来临,游戏外挂在原有的功能之上进行了新的发展,它变得更加多种多样,功能更加强大,*作更加简单,以至有些游戏的外挂已经成为一个体系,比如《石器时代》,外挂品种达到了几十种,自动战斗、自动行走、自动练级、自动补血、加速、不遇敌、原地遇敌、快速增加经验值、按键精灵……几乎无所不包。

游戏外挂的设计主要是针对于某个游戏开发的,我们可以根据它针对的游戏的类型可大致可将外挂分为两种大类。

一类是将游戏中大量繁琐和无聊的攻击动作使用外挂自动完成,以帮助玩家轻松搞定攻击对象并可以快速的增加玩家的经验值。

比如在《龙族》中有一种工作的设定,玩家的工作等级越高,就可以驾驭越好的装备。

但是增加工作等级却不是一件有趣的事情,毋宁说是重复枯燥的机械劳动。

如果你想做法师用的杖,首先需要做基本工作--?砍树。

砍树的方法很简单,在一棵大树前不停的点鼠标就可以了,每10000的经验升一级。

这就意味着玩家要在大树前不停的点击鼠标,这种无聊的事情通过"按键精灵"就可以解决。

继续教育网按键精灵源码

继续教育网按键精灵源码
If a - aa > 60000 Then
aa = a
randomize
MoveTo int(Rnd*1366),int(Rnd*768)
End If
End if
Call FindPic(0,0,1365,767,"Attachment:\q.bmp",0.9,x,y)
Delay 100
LeftClick 1
KeyPress "Right", 1
SayString m(2)'"134034"
Delay 100
Goto xunzhao3
Else
MoveTo 1360,286'1060, 190'下边的密码输入框
Delay 500
LeftClick 1
Delay 500
LeftClick 1
Delay 500
Call Plugin.Media.Play("C:\Users\Administrator\Desktop\梨花又开放.mp3")
End If
Call FindPic(0,0,1365,767,"Attachment:\100.bmp",0.9,x,y)
Goto xunzhao1
Else
goto xuexi
End If
Rem xunzhao1
Call FindPic(0, 0, 1365, 767, "Attachment:\yonghuming1.bmp", 0.9, x, y)
If x>=0 and y>=0 Then

按键精灵的原理和编写方法(1)

按键精灵的原理和编写方法(1)

按键精灵的原理和编写方法(1)按键精灵的原理和编写方法(1)2009-08-14 16:27:40| 分类:默认分类 |字号订阅按键精灵是一类很普遍的游戏插件,wow raid过程中部分职业的某些操作就需要此类插件(文俊的牧师号在打某些BOSS时驱散用到过)。

类似的插件无非是用程序来模拟重复性的键盘动作。

游戏中进行键盘操作的程序可以理解为:按下某键——键盘驱动程序将此事件传递给操作系统——操作系统将此事件插入消息队列——此消息被发送到当前活动窗口。

按照这个过程来理解程序,剩下的只不过要将抽象化的语句翻译成代码。

当然很多过程编程工具(.NET)会自动处理,而不需你去理会。

(如如何插入消息队列,消息队列的管理,无用对象的释放)。

第一个问题,按下如何用程序来模拟在键盘上按下某键。

日常操作中,当用户在键盘上按下某个按键时,键盘内芯片会检测到这个动作,并将这个信号传递给计算机。

对于每个按键,键盘分配给它不同的编码,称做键盘扫描码。

当敲击键盘时,底层上实际传递给计算机消息队列的是该按键的键盘扫描码,所以知道了欲按键的扫描码,就可以将该信息传递给电脑,从而达到模拟按键的功能。

第二个问题,键盘驱动程序如何把此事件传递给操作系统。

解决第一个问题的关键是必须知道按键的键盘扫描码,但是仅仅知道键盘扫描码不够。

因为操作系统需要得到的信息的并不是键盘扫描码。

因为键盘扫描码是跟具体的硬件相关的,同一个键在不同键盘上的扫描码有可能不同。

键盘控制器将这个扫描码传给计算机,然后交给键盘驱动程序。

键盘驱动程序会完成相关的工作,并把这个扫描码转换为键盘虚拟码。

键盘虚拟码是针对键盘扫描码的非通用性所提出。

尽管出于硬件原因,同一个按键可能有不同的扫描码,但是无论什么键盘,同一个按键的虚拟码总是相同的,这样程序就可以识别了。

简单点说,虚拟码就是我们经常可以看到的像VK_A,VK_B这样的常数,比如键a的虚拟码(字母大小写虽然是同一个键,但是虚拟码不同)是&H61(即十进制的97,一般用16进制来表示虚拟码)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学习游戏脚本制作:按键精灵键鼠同步器源码分享
来源:按键学院【按键精灵】小编之前也有使用过其它大牛编写的游戏同步的脚本,突然间对于它是如何实现同步感到十分好奇,我们一起来研究看看,同步到底是怎么实现的吧~
NO.1-同步的前提
前提
1同步的两个窗口需要是同一个应用窗口,并且窗口大小要相同
2同步窗口可以接收到按键的键鼠发送信息
3同步的窗口支持后台键鼠操作
NO.2-本节例子及其能实现的功能
例子
1画图工具,实现同步画图
2记事本,实现同步删除内容
功能①键鼠同步
②支持组合键
NO.3-思路大剖析
思路步骤
1获取主窗口和被同步窗口句柄
● WaitKey 命令等待键盘按下
○按下F6则获取当前鼠标指向的窗口句柄,作为主窗口句柄。

○按下F7 则获取当前鼠标指向的窗口句柄,作为同步窗口句柄。

●用Do循环来等待按键,当主窗口句柄和同步窗口句柄都获取到时,退出Do循环
●代码
Do
Key = WaitKey()
If Key = 117 Then
主窗口= Plugin.Window.MousePoint()
End If
If Key = 118 Then
同步窗口= Plugin.Window.MousePoint()
End If
Delay 500
If 主窗口<> 0 and 同步窗口<> 0 Then
Exit Do
End If
Loop
2设置两个窗口的窗口大小一致
●窗口大小一致,同步的时候鼠标才能移动到正确的位置。

●代码
Call Plugin.Window.Size(主窗口,800,600)
Call Plugin.Window.Size(同步窗口,800,600)
3获取主窗口的左上角坐标
●GetWindowRect 命令获取主窗口的左上角坐标
●代码
sRect = Plugin.Window.GetWindowRect(主窗口)
dim MyArray
MyArray = Split(sRect, "|")
L = Clng(MyArray(0)): T = Clng(MyArray(1))
4获取当前鼠标在主窗口的位置
●GetCursorPos命令获取当前鼠标位置
●代码
GetCursorPos mx, my
5计算主窗口内当前鼠标位置和窗口左上角距离
●公式:当前鼠标位置减去窗口左上角坐标值( mx-L, my-T)
6开始同步
●被同步窗口,使用按键后台键鼠命令,将鼠标移动到和主窗口相同的位置
(按键后台命令鼠标移动是以窗口客户区左上角坐标为基点)
●代码
Call Plugin.Bkgnd.MoveT o(同步窗口, mx-L, my-T)
●在主窗口内按下任意键时,同步窗口也执行同样的操作
●代码
Key = GetLastKey()
Call Plugin.Bkgnd.KeyPress(同步窗口, Key)
NO.4-代码
代码
Do
Key = WaitKey()
If Key = 117 Then
主窗口= Plugin.Window.MousePoint()
//Call Plugin.Window.Size(主窗口,800,600)
End If
If Key = 118 Then
同步窗口= Plugin.Window.MousePoint()
// Call Plugin.Window.Size(同步窗口,800,600)
End If
Delay 500
If 主窗口<> 0 and 同步窗口<> 0 Then
Exit Do
End If
Loop
Do
Mouse = GetLastClick()
If Mouse = 32769 Then //鼠标左键按下时ASCII码为 32769
sRect = Plugin.Window.GetWindowRect(主窗口)
dim MyArray
MyArray = Split(sRect, "|")
L = Clng(MyArray(0)): T = Clng(MyArray(1))
GetCursorPos mx, my
Delay 10
Call Plugin.Bkgnd.LeftDown(同步窗口, mx-L, my-T)
Delay 10
Do
Mouse = GetLastClick()
If Mouse = 0 Then //鼠标无点击操作
GetCursorPos mx, my
Delay 10
Call Plugin.Bkgnd.MoveT o(同步窗口, mx-L, my-T)
Delay 10
End If
If Mouse = 32770 Then //鼠标左键弹起时ASCII码为 32770
GetCursorPos mx, my
Delay 10
Call Plugin.Bkgnd.LeftUp(同步窗口, mx-L, my-T)
Exit Do
End If
Loop
End If
Key = GetLastKey()
Call Plugin.Bkgnd.KeyPress(同步窗口, Key)
Loop
NO.5-效果演示
演示
画图
记事本
注意画图和记事本,获取窗口句柄的时候请点击白白的客户区进行获取,因为我们是要对它的客户区进行操作
NO.6-温馨小提示
温馨小提示
*游戏窗口中的同步,需要注意几个窗口中人物的朝向和坐标是否相同
*如果坐标朝向不同,一个窗口里的角色往西边走一个往北边走,就无法达到预期同步任务的效果。

相关文档
最新文档