学习游戏辅助制作:按键精灵模拟鼠标动作防检测
- 格式:docx
- 大小:3.99 MB
- 文档页数:7
学习怎么用按键精灵制作游戏辅助——脚本源代码干货分享一、用按键精灵确定人物朝向(以剑灵自动寻路为例)的代码在剑灵右上角的小地图里找色/找图,箭头坐标存储在(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// 基数归位(排完一轮之后左边的数<基数<右边的数那么基数就到了排序中它该在的位置。
⽹上学习⿏标10分钟⾃动点击按键精灵使⽤设置⽅法脚本编辑⾯对⼀些⽹上学习或者⽹上游戏,要求每隔多少时间点击⼀下,才算有效记录。
我们这些懒⼈,怎样能⽼等到那个时间就去点击⼀下呢。
那有什么好的⽅法吗?下⾯讲⼀下,每隔⼗分钟点击⼀下记录的⽅法。
1.下载按键精灵2.安装3.在写脚本这⾥新建⼀个4⾥⾯的内容很简单⾃⼰可以看明⽩的5。
如果不明⽩可以看这些代码MoveTo 112, 286 (这个意思是⿏标移动那个位置, 112是X 286是Y)这个位置你可以⽤软件上⾯的抓抓找到坐标的。
(4个⾓的坐标你可以任意拖动那个记时的对话框模拟它跑到4个⾓的位置)LeftClick 1 (这个意思是⿏标的动作是左键点击⼀下)Delay 600000 (这个意思是时间相隔600000毫秒=10分钟)6.如果还不会⾃⼰设置可以下载我的⼀个代码把它复制到上图中间部分(点击源⽂件)复制然后再设置⼀下右边位置循环重复次数直到终⽌就好了。
注意:代码包⾥⾯设置是⼀次点击8下(包括4个⾓,每个⾓2下,保证点击到按钮,当然你可以根本实际设置任何位置操作)但坐标⼤⼩与你⽤的浏览器,显⽰器尺⼨不同,有所不同。
还不会设置请联系。
代码.zip(787 Bytes, 下载次数: 6)MoveTo 112, 286LeftClick 1MoveTo 151, 286LeftClick 1Delay 1000MoveTo 1176, 286 LeftClick 1 MoveTo 1246, 286 LeftClick 1 Delay 1000 MoveTo 72, 824 LeftClick 1 MoveTo 155, 824 LeftClick 1 Delay 1000 MoveTo 1166, 824 LeftClick 1 MoveTo 1243, 824 LeftClick 1 Delay 600000 MoveTo 112, 286 LeftClick 1 MoveTo 151, 286 LeftClick 1 Delay 1000 MoveTo 1176, 286 LeftClick 1 MoveTo 1246, 286 LeftClick 1 Delay 1000 MoveTo 72, 824 LeftClick 1 MoveTo 155, 824 LeftClick 1 Delay 1000 MoveTo 1166, 824 LeftClick 1 MoveTo 1243, 824 LeftClick 1设置好了。
游戏外挂基本原理及实现游戏外挂基本原理及实现游戏外挂已经深深地影响着众多⽹络游戏玩家,今天在⽹上看到了⼀些关于游戏外挂编写的技术,于是转载上供⼤家参考 1、游戏外挂的原理 外挂现在分为好多种,⽐如模拟键盘的,⿏标的,修改数据包的,还有修改本地内存的,但好像没有修改服务器内存的哦,呵呵。
其实修改服务器也是有办法的,只是技术太⾼⼀般⼈没有办法⼊⼿⽽已。
(⽐如请GM去夜总会、送礼、收⿊钱等等办法都可以修改服务器数据,哈哈) 修改游戏⽆⾮是修改⼀下本地内存的数据,或者截获API函数等等。
这⾥我把所能想到的⽅法都作⼀个介绍,希望⼤家能做出很好的外挂来使游戏⼚商更好的完善⾃⼰的技术。
我见到⼀篇⽂章是讲魔⼒宝贝的理论分析,写得不错,⼤概是那个样⼦。
下来我就讲解⼀下技术⽅⾯的东西,以作引⽟之⽤。
2 技术分析部分 2.1 模拟键盘或⿏标的响应 我们⼀般使⽤: UINT SendInput( UINT nInputs, // count of input events LPINPUT pInputs, // array of input events int cbSize // size of structure ); API函数。
第⼀个参数是说明第⼆个参数的矩阵的维数的,第⼆个参数包含了响应事件,这个⾃⼰填充就可以,最后是这个结构的⼤⼩,⾮常简单,这是最简单的⽅法模拟键盘⿏标了,呵呵。
注意,这个函数还有个替代函数: VOID keybd_event( BYTE bVk, // 虚拟键码 BYTE bScan, // 扫描码 DWORD dwFlags, ULONG_PTR dwExtraInfo // 附加键状态 ); 与 VOID mouse_event( DWORD dwFlags, // motion and click options DWORD dx, // horizontal position or change DWORD dy, // vertical position or change DWORD dwData, // wheel movement ULONG_PTR dwExtraInfo // application-defined information ); 这两个函数⾮常简单了,我想那些按键精灵就是⽤的这个吧。
命令名称LeftClick 左键单击命令功能模拟点击鼠标左键命令参数参数1 整数型,次数返回值无脚本例子按键精灵8及以上语法复制代码1.//LeftClick、LeftClickS、LeftClickH2.//LeftClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用3.//LeftClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标点击查看使用硬件模拟方式的注意事项4.LeftClick 55.//在当前鼠标的位置单击鼠标左键5次脚本例子按键精灵7及以上语法复制代码1.//LeftClick、LeftClickS、LeftClickH2.//LeftClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用3.//LeftClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标点击查看使用硬件模拟方式的注意事项4.LeftClick 55.//在当前鼠标的位置单击鼠标左键5次命令名称LeftDown 左键按下命令功能模拟按下鼠标左键命令参数参数1 整数型,次数返回值无脚本例子按键精灵8及以上语法复制代码1.//LeftDown、LeftDownS、LeftDownH2.//{次数}在这个语句中虽然有效,但没有实际意义.3.//LeftDownS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用4.//LeftDownH: 硬件模拟方式,仅支持PS(圆口)的鼠标点击查看使用硬件模拟方式的注意事项5.LeftDown 16.//在当前鼠标的位置按下鼠标左键脚本例子按键精灵7及以上语法复制代码1.//LeftDown、LeftDownS、LeftDownH2.//{次数}在这个语句中虽然有效,但没有实际意义.3.//LeftDownS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用4.//LeftDownH: 硬件模拟方式,仅支持PS(圆口)的鼠标点击查看使用硬件模拟方式的注意事项5.LeftDown 16.//在当前鼠标的位置按下鼠标左键命令名称LeftUp 左键弹起命令功能模拟松开鼠标左键命令参数参数1 整数型,次数返回值无脚本例子按键精灵8及以上语法复制代码1.//LeftUp、LeftUpS、LeftUpH2.//{次数}在这个语句中虽然有效,但没有实际意义.3.//LeftUpS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用4.//LeftUpH: 硬件模拟方式,仅支持PS(圆口)的鼠标点击查看使用硬件模拟方式的注意事项5.LeftUp 16.//在当前鼠标的位置弹起鼠标左键脚本例子按键精灵7及以上语法复制代码1.//LeftUp、LeftUpS、LeftUpH2.//{次数}在这个语句中虽然有效,但没有实际意义.3.//LeftUpS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用4.//LeftUpH: 硬件模拟方式,仅支持PS(圆口)的鼠标点击查看使用硬件模拟方式的注意事项5.LeftUp 16.//在当前鼠标的位置弹起鼠标左键命令名称LeftDoubleClick 左键双击命令功能模拟双击鼠标左键命令参数参数1 整数型,次数返回值无脚本例子按键精灵8及以上语法复制代码1.//LeftDoubleClick、LeftDoubleClickS、LeftDoubleClickH]2.//LeftDoubleClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用3.//LeftDoubleClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标点击查看使用硬件模拟方式的注意事项4.LeftDoubleClick 55.//在当前鼠标的位置双击鼠标左键5次脚本例子按键精灵7及以上语法复制代码1.//LeftDoubleClick、LeftDoubleClickS、LeftDoubleClickH]2.//LeftDoubleClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用3.//LeftDoubleClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标点击查看使用硬件模拟方式的注意事项4.LeftDoubleClick 55.//在当前鼠标的位置双击鼠标左键5次命令名称RightClick 右键单击命令功能模拟点击鼠标右键命令参数参数1 整数型,次数返回值无脚本例子按键精灵8及以上语法复制代码1.//RightClick、RightClickS、RightClickH2.//RightClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用3.//RightClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标点击查看使用硬件模拟方式的注意事项4.RightClick 55.//在当前鼠标的位置单击鼠标右键5次脚本例子按键精灵7及以上语法复制代码1.//RightClick、RightClickS、RightClickH2.//RightClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用3.//RightClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标点击查看使用硬件模拟方式的注意事项4.RightClick 55.//在当前鼠标的位置单击鼠标右键5次命令名称RightDown 右键按下命令功能模拟按下鼠标右键命令参数参数1 整数型,次数返回值无脚本例子按键精灵8及以上语法复制代码1.//RightDown、RightDownS、RightDownH2.//{次数}在这个语句中虽然有效,但没有实际意义.3.//RightDownS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用4.//RightDownH: 硬件模拟方式,仅支持PS(圆口)的鼠标点击查看使用硬件模拟方式的注意事项5.RightDown 16.//在当前鼠标的位置按下鼠标右键脚本例子按键精灵7及以上语法复制代码1.//RightDown、RightDownS、RightDownH2.//{次数}在这个语句中虽然有效,但没有实际意义.3.//RightDownS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用4.//RightDownH: 硬件模拟方式,仅支持PS(圆口)的鼠标点击查看使用硬件模拟方式的注意事项5.RightDown 16.//在当前鼠标的位置按下鼠标右键命令名称RightUp 右键弹起命令功能模拟松开鼠标右键命令参数参数1 整数型,次数返回值无脚本例子按键精灵8及以上语法复制代码1.//RightUp、RightUpS、RightUpH2.//{次数}在这个语句中虽然有效,但没有实际意义3.//RightUpS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用4.//RightUpH: 硬件模拟方式,仅支持PS(圆口)的鼠标点击查看使用硬件模拟方式的注意事项5.RightUp 16.//在当前鼠标的位置弹起鼠标右键脚本例子按键精灵7及以上语法复制代码1.//RightUp、RightUpS、RightUpH2.//{次数}在这个语句中虽然有效,但没有实际意义3.//RightUpS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用4.//RightUpH: 硬件模拟方式,仅支持PS(圆口)的鼠标点击查看使用硬件模拟方式的注意事项5.RightUp 16.//在当前鼠标的位置弹起鼠标右键命令名称MiddleClick 中键单击命令功能模拟点击鼠标中键命令参数参数1 整数型,次数返回值无脚本例子按键精灵8及以上语法复制代码1.//MiddleClick、MiddleClickS、MiddleClickH2.//MiddleClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用3.//MiddleClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标点击查看使用硬件模拟方式的注意事项4.MiddleClick 55.//在当前鼠标的位置单击鼠标中键5次脚本例子按键精灵7及以上语法复制代码1.//MiddleClick、MiddleClickS、MiddleClickH2.//MiddleClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用3.//MiddleClickH:硬件模拟方式,仅支持PS(圆口)的鼠标点击查看使用硬件模拟方式的注意事项4.MiddleClick 55.//在当前鼠标的位置单击鼠标中键5次命令名称MoveTo 鼠标移动命令功能移动鼠标到命令参数参数1 整数型,X坐标参数2 整数型,Y坐标返回值无脚本例子按键精灵8及以上语法复制代码1.//MoveTo、MoveToS、MoveToH2.//MoveToS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用3.//MoveToH: 硬件模拟方式,仅支持PS(圆口)的鼠标4.MoveTo 100,2005.//把鼠标移动到(100,200)这个点上6.intX=507.intY=1508.MoveTo intX,intY9.//把鼠标移动到(intX,intY)这个点上,需要5.50以上版本支持.脚本例子按键精灵7及以上语法复制代码1.//MoveTo、MoveToS、MoveToH2.//MoveToS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用3.//MoveToH: 硬件模拟方式,仅支持PS(圆口)的鼠标4.MoveTo 100,2005.//把鼠标移动到(100,200)这个点上6.intX=507.intY=1508.MoveTo intX,intY9.//把鼠标移动到(intX,intY)这个点上,需要5.50以上版本支持.命令名称MoveR 鼠标相对移动命令功能鼠标相对移动到命令参数参数1 整数型,X距离参数2 整数型,Y距离返回值无脚本例子按键精灵8及以上语法复制代码1.//MoveR、MoveRS、MoveRH2.//MoveRS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用3.//MoveRH: 硬件模拟方式,仅支持PS(圆口)的鼠标点击查看使用硬件模拟方式的注意事项4.//当前鼠标在(100,100)点,使用下面语句5.MoveR 200,3006.//之后,鼠标就被移到了(100+200,100+300)处,也就是坐标(300,400)处7.//提示:使用硬件模拟方式不能碰键盘鼠标,否则会导致出错脚本例子按键精灵7及以上语法复制代码1.//MoveR、MoveRS、MoveRH2.//MoveRS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用3.//MoveRH: 硬件模拟方式,仅支持PS(圆口)的鼠标点击查看使用硬件模拟方式的注意事项4.//当前鼠标在(100,100)点,使用下面语句5.MoveR 200,3006.//之后,鼠标就被移到了(100+200,100+300)处,也就是坐标(300,400)处7.//提示:使用硬件模拟方式不能碰键盘鼠标,否则会导致出错命令名称MouseWheel 鼠标滚轮命令功能滚动鼠标滚轮命令参数参数1 整数型,滚动量返回值无脚本例子按键精灵8及以上语法复制代码1.//如果滚动量为正,向上滚动;否则向下滚动.2.//仅支持Windows 2000以上的操作系统.3.MouseWheel 14.//把鼠标滚轮向上滚动1格脚本例子按键精灵7及以上语法复制代码1.//如果滚动量为正,向上滚动;否则向下滚动.2.//仅支持Windows 2000以上的操作系统.3.MouseWheel 14.//把鼠标滚轮向上滚动1格命令名称SaveMousePos 保存当前鼠标所在位置命令功能保存当前鼠标位置命令参数无返回值无脚本例子按键精灵8及以上语法复制代码1.SaveMousePos2.//保存当前鼠标位置3.Delay 1004.MoveTo 500,205.Delay 1006.RestoreMousePos7.//将鼠标移动到上一次保存的鼠标位置8.//保存/恢复鼠标位置常用于制作网络游戏练功脚本,脚本开始时保存鼠标位置,脚本结束时恢复鼠标位置,9.//这样脚本执行后鼠标的位置就不会变化脚本例子按键精灵7及以上语法复制代码1.SaveMousePos2.//保存当前鼠标位置3.Delay 1004.MoveTo 500,205.Delay 1006.RestoreMousePos7.//将鼠标移动到上一次保存的鼠标位置8.//保存/恢复鼠标位置常用于制作网络游戏练功脚本,脚本开始时保存鼠标位置,脚本结束时恢复鼠标位置,9.这样脚本执行后鼠标的位置就不会变化命令名称RestoreMousePos 恢复上次保存的鼠标位置命令功能保存当前鼠标位置命令参数无返回值无脚本例子按键精灵8及以上语法复制代码1.SaveMousePos2.//保存当前鼠标位置3.Delay 1004.MoveTo 500,205.Delay 1006.RestoreMousePos7.//将鼠标移动到上一次保存的鼠标位置8.//保存/恢复鼠标位置常用于制作网络游戏练功脚本,脚本开始时保存鼠标位置,脚本结束时恢复鼠标位置,9.//这样脚本执行后鼠标的位置就不会变化脚本例子按键精灵7及以上语法复制代码1.SaveMousePos2.//保存当前鼠标位置3.Delay 1004.MoveTo 500,205.Delay 1006.RestoreMousePos7.//将鼠标移动到上一次保存的鼠标位置8.//保存/恢复鼠标位置常用于制作网络游戏练功脚本,脚本开始时保存鼠标位置,脚本结束时恢复鼠标位置,9.这样脚本执行后鼠标的位置就不会变化命令名称LockMouse 锁定鼠标位置命令功能锁定鼠标位置,用户将不能通过移动鼠标而改变鼠标位置,而脚本仍可以改变鼠标位置命令参数无返回值无脚本例子按键精灵8及以上语法复制代码1.//在脚本开始的时候使用这个命令,可以有效防止用户误触鼠标引起脚本执行出错2.LockMouse3.Do4.Delay 10005.Loop脚本例子按键精灵7及以上语法复制代码1.//在脚本开始的时候使用这个命令,可以有效防止用户误触鼠标引起脚本执行出错2.LockMouse3.While True4.Delay 10005.EndWhile命令名称UnlockMouse 解除锁定鼠标位置命令功能解除LockMouse命令对鼠标位置的锁定命令参数无返回值无脚本例子按键精灵8及以上语法复制代码1.脚本例子按键精灵7及以上语法复制代码1.//如果用户使用了LockMouse命令而没有使用UnlockMouse命令,按键精灵会在脚本结束时自动解除锁定2.UnlockMouse命令名称WaitClick 按任意鼠标键继续命令功能脚本执行到这一句暂停,按下任意鼠标键之后继续命令参数参数1 整数型,可选:变量名返回值无脚本例子按键精灵8及以上语法复制代码st_click=WaitClick()2.MessageBox "您按下了" & last_click脚本例子按键精灵7及以上语法复制代码1.WaitClick last_click2.MessageBox "您按下了" & last_click命令名称GetLastClick 检测上次按过的鼠标键命令功能检测上一次按下的鼠标代码命令参数参数1 整数型,可选:变量名返回值无脚本例子按键精灵8及以上语法复制代码1.Mouse=GetLastClick()2.If Mouse =32770 Or Mouse =32769 Then3. Msgbox "你按下了鼠标左键"4.End If脚本例子按键精灵7及以上语法复制代码1.GetLastClick Mouse2.If Mouse =32770 Or Mouse =327693. Msgbox "你按下了鼠标左键"4.EndIf命令名称GetCursorPos 得到鼠标位置坐标命令功能得到当前鼠标所在的位置坐标命令参数参数1 整数型,返回x坐标参数2 整数型,返回y坐标返回值无脚本例子按键精灵8及以上语法复制代码1.GetCursorPos mx,my2.//把当前鼠标位置的x和y坐标放在变量mx和my中脚本例子按键精灵7及以上语法复制代码1.VBSCall GetCursorPos(mx,my)2.//把当前鼠标位置的x和y坐标放在变量mx和my中命令名称GetCursorShape 得到鼠标形状命令功能得到当前鼠标的形状特征命令参数参数1 整数型,参数返回值整数型,鼠标的形状值脚本例子按键精灵8及以上语法复制代码1.//参数: 0 是6.83之前的版本默认的参数2.//参数: 1 可用于一些在参数0下无法区分鼠标形状代码的情况3.//下面是我们普通的WINDOWS鼠标形状特征4.//不同电脑上鼠标形状特征也许不同,请使用"抓点抓色"功能抓取正确的鼠标形状特征5.Shape1 = 15933502876.//下面是我们访问网页超链接时候的手型鼠标形状7.Shape2 = 10559913298.shape=GetCursorShape(0)9.If shape = shape1 Then10. MessageBox "当前鼠标形状是普通的WINDOWS鼠标"11.ElseIf shape = shape2 Then12. MessageBox "当前鼠标形状是手型鼠标"13.Else14. MessageBox "不认识当前鼠标形状!"15.End If脚本例子按键精灵7及以上语法复制代码1.//参数: 0 是6.83之前的版本默认的参数2.//参数: 1 可用于一些在参数0下无法区分鼠标形状代码的情况3.//下面是我们普通的WINDOWS鼠标形状特征4.//不同电脑上鼠标形状特征也许不同,请使用"抓点抓色"功能抓取正确的鼠标形状特征5.Shape1 = 15933502876.//下面是我们访问网页超链接时候的手型鼠标形状7.Shape2 = 10559913298.VBSCall Shape=GetCursorShape(0)9.If shape = shape110. MessageBox 当前鼠标形状是普通的WINDOWS鼠标11.ElseIf shape = shape212. MessageBox 当前鼠标形状是手型鼠标13.Else14. MessageBox 不认识当前鼠标形状!15.EndIf命令名称SetSimMode 设置模拟方式命令功能设置模拟方式命令参数参数1 整数型,设置模拟方式返回值无脚本例子按键精灵8及以上语法复制代码1.//模拟方式(0普通|1硬件|2超级)2.MessageBox "这个例子会演示普通/硬件/超级这三种模拟方式的效果,点击确定后3秒钟开始模拟,会用普通模拟按3下a,硬件模拟按3下b,超级模拟按3下c"3.Delay 30004.SetSimMode 05.KeyPress 65,36.MoveTo 0,07.Delay 10008.SetSimMode 19.KeyPress 66,310.MoveTo 100,10011.Delay 100012.SetSimMode 213.KeyPress 67,314.MoveTo 200,20015.MessageBox "演示结束"脚本例子按键精灵7及以上语法复制代码1.//模拟方式(0普通|1硬件|2超级)2.MessageBox "这个例子会演示普通/硬件/超级这三种模拟方式的效果,点击确定后3秒钟开始模拟,会用普通模拟按3下a,硬件模拟按3下b,超级模拟按3下c"3.Delay 30004.SetSimMode 05.KeyPress 65,36.MoveTo 0,07.Delay 10008.SetSimMode 19.KeyPress 66,310.MoveTo 100,10011.Delay 100012.SetSimMode 213.KeyPress 67,314.MoveTo 200,20015.MessageBox "演示结束"。
易语⾔仿按键精灵录制键盘⿏标操作的代码DLL命令表.版本 2.DLL命令取按键状态, 短整数型, "user32.dll", "GetAsyncKeyState".参数⿏标键, 整数型.DLL命令取⿏标位置, 整数型, "user32.dll", "GetCursorPos".参数当前⿏标位置, ⿏标位置, 传址.DLL命令模拟⿏标按键, , , "mouse_event".参数⿏标动作, 整数型.参数⽔平位置, 整数型.参数垂直位置, 整数型.参数⿏标按键, 整数型.参数扩展信息, 整数型.DLL命令模拟键盘按键, , , "keybd_event".参数 bVk, 字节型.参数 bScan, 字节型.参数 dwFlags, 整数型.参数 dwExtraInfo, 整数型⾃定义数据类型.版本 2.数据类型⿏标位置.成员横向坐标, 整数型.成员纵向坐标, 整数型.数据类型按键记录, , 记录长度13个字节..成员时间间隔, 整数型.成员键值, 字节型, , , 0,⿏标移动;其他为键盘键值.成员键盘动作, 整数型, , , 或者是⿏标⽔平位置.成员垂直位置, 整数型, , , ⿏标垂直位置⿏标键盘录制的代码.版本 2.程序集程序集_主窗⼝.程序集变量按键状态, 整数型, , "256".程序集变量时间线, 整数型.程序集变量⿏标前次位置, ⿏标位置.程序集变量操作记录, 按键记录, , "92000".程序集变量缓冲区记录数, ⽂本型.程序集变量当前记录, 整数型.程序集变量可否中断, 逻辑型.程序集变量屏幕宽度, 整数型.程序集变量屏幕⾼度, 整数型.程序集变量停⽌回放, 逻辑型.⼦程序判断按键.参数键值, 字节型.参数当前状态, 整数型.判断开始 (当前状态= 0).如果真 (按键状态 [键值+ 1] ≠ 0)添加记录 (键值, #键抬起, 0).如果真结束.判断 (当前状态 ≠ 0).如果 (键值= #F3键)可否中断=真返回 ().否则.如果结束.如果真 (按键状态 [键值+ 1] = 0)添加记录 (键值, #键按下, 0).如果真结束.默认.判断结束按键状态 [键值+ 1] =当前状态.⼦程序添加记录.参数键值, 字节型, , 为0表⽰⿏标移动,其他表⽰按键.参数键盘动作, 整数型, , 或 “⽔平位置”,传⼊的双精度数.参数垂直位置, 整数型当前记录=当前记录+ 1.如果 (当前记录>取数组成员数 (操作记录))返回 ().否则.如果结束操作记录 [当前记录].时间间隔=取启动时间 () -时间线操作记录 [当前记录].键值=键值操作记录 [当前记录].键盘动作=键盘动作操作记录 [当前记录].垂直位置=垂直位置标签_录制进程.标题=到⽂本 (当前记录) + “ / ” +缓冲区记录数.⼦程序 _按钮_记录_被单击.局部变量键值, 整数型.局部变量⿏标当前位置, ⿏标位置.局部变量⿏标动作, 整数型.局部变量脚本⽂件号, 整数型.局部变量记录数, 整数型.局部变量脚本⽂件名, ⽂本型按钮_记录.禁⽌=真按钮_回放.禁⽌=真按钮_停⽌.禁⽌=假.如果真 (选择框_最⼩化.选中)位置= 2.如果真结束时钟_热键.时钟周期= 0 ' 关闭 “记录” 热键.计次循环⾸ (256, 键值) ' 初始化按键状态取按键状态 (键值- 1)按键状态 [键值] = 0.计次循环尾 ()屏幕宽度=取屏幕宽度 () ' 为获取⿏标坐标作准备屏幕⾼度=取屏幕⾼度 ()当前记录= 0时间线=取启动时间 ()可否中断=假 ' 开始记录.判断循环⾸ (可否中断=假)取⿏标位置 (⿏标当前位置).如果真 (⿏标前次位置.横向坐标 ≠ ⿏标当前位置.横向坐标或⿏标前次位置.纵向坐标 ≠ ⿏标当前位置.纵向坐标)⿏标前次位置=⿏标当前位置添加记录 (0, ⿏标当前位置.横向坐标 × 65535 \屏幕宽度, ⿏标当前位置.纵向坐标 × 65535 \屏幕⾼度).如果真结束.变量循环⾸ (146, 255, 1, 键值) ' 先检查额外按键信息。
学习游戏辅助制作:按键精灵模拟鼠标动作防检测来源:按键学院【按键精灵】有些游戏会检测到鼠标动作.频繁相同的点击很容易让游戏检测到我们使用了按键,这样的情况下,我们需要模拟鼠标移动,让鼠标像真是手动操作一样,慢慢的移动到终点。
论坛里的一位大牛:we似曾相识曾经开展了"老鼠慢慢跑"的比赛征集帖,收集了各式各样模拟鼠标移动的代码,我们一起来看看~~~内容提要1、点到点模拟鼠标真实移动——直线2、点到点模拟鼠标真实移动——直线+转折3、点到点模拟鼠标真实移动——直线+振幅4、点到点模拟鼠标真实移动——曲线场景在mspaint画图工具中,让鼠标从点100,100移动到点800,600NO.1-点到点模拟鼠标真实移动——直线代码1 作者:林家铺子x1 = 800 : y1 = 600 //目标点x2 = 100 : y2 = 100//起始点MoveT o x2,y2k = (y2 - y1) / (x2 - x1)b = y2 - k * x2For x = x2 To x1 Step sgn(x1 - x2)//sgn函数为返回表示数字符号的整数。
当(x1 - x2)>0时,返回值为1.当(x1 - x2)<0时,返回值为-1.当=0时,返回值为0LeftDown 1MoveT o x, (k * x + b)LeftUp 1Delay 1Next代码2 作者:_雪狼Call 鼠标慢慢跑(100,100,800,600,5)Sub 鼠标慢慢跑(x1, y1, x2, y2,time1)Dim a, x, y, ix = x1 : y = y1a = x2 / y2MoveT o x1, y1For i = y T o y2-1y = y + 1x = y * aLeftDown 1MoveTo x, yDelay time1NextEnd Sub代码3-变速作者:playandhappy//点到点直线移动,鼠标移动速度开始快后来越来越慢Call 老鼠慢慢跑(100,100,800,600,100)Sub 老鼠慢慢跑(x1,y1,x2,y2,times)MoveT o x1,y1While abs(x1-x2)>5 or abs(y1-y2)>5GetCursorPos x1, y1LeftDown 1MoveR (x2 - x1) / 4, (y2 - y1) / 4LeftUp 1Delay timesWendLeftDown 1MoveT o x2, y2LeftUp 1End Sub代码4-移动次数作者:fuyong198010222//点到点直线移动,并且可以设置移动几次到达目标地点Dim a, b, c, d ,n,t //起点(100,100),终点(800,600)a = 100 :b = 100 :c = 800 :d = 600//匀速直线移动UserVar n=100 "多少次移动到位"UserVar t=50 "每一次移动相隔多少时间"Call 老鼠慢慢跑()Sub 老鼠慢慢跑MoveT o a, bDelay tFor nx = (c - a) / n : y = (d - b) / nLeftDown 1MoveR x, yLeftUp 1Delay tNextEnd Sub代码5-移动间隔作者:xuyuzuiMoveT o 100,100Call 老鼠慢慢跑(800, 600, 5, 50)Sub 老鼠慢慢跑(x, y, mousestep, mouseDelay)'x,y : 移动终点坐标' mousestep: 移动间距'mouseDelay : 移动时间间隔(ms)Dim Xstep, YstepDim curx, cury, PianYiX, PianYiYGetCursorPos curx, curyIf abs(curx - x) < mousestep And abs(cury - y) < mousestep ThenLeftDown 1MoveTo x, yLeftUp 1Exit SubEnd IfXstep = (x - curx) / mousestepYstep = (y - cury) / mousestepIf abs(Xstep) > abs(Ystep) ThenPianYiX = mousestep * sgn(Xstep)PianYiY = (y - cury) / abs(Xstep)ElsePianYiX = (x - curx) / abs(Ystep)PianYiY = mousestep * sgn(Ystep)End IfLeftDown 1MoveR PianYiX, PianYiYLeftUp 1Delay mouseDelayCall 老鼠慢慢跑(x, y, mousestep, mouseDelay)End SubNO.2-点到点模拟鼠标真实移动——直线+转折代码1 作者:VBS技术者//tD几毫秒移动一点call 鼠标慢慢跑(100,100,800,600,5)Sub 鼠标慢慢跑(X1,Y1,X2,Y2,tD)Dim xl,yl,xc,yc,endx,endy,sx,syDim FORC,ixl=abs(clng(X1)-clng(X2))yl=abs(clng(y1)-clng(y2))EndX = X2EndY = Y2XC=1YC=1sx=x1sy=y1If clng(X1)>=clng(X2) ThenEndX = X1xc = -1End IfIf clng(Y1)>=clng(Y2) ThenEndY = Y1yc = -1End IfIf xl>yl ThenFORC = xlElseFORC = ylEnd IfFor i = 1 To FORC+1LeftDown 1MoveT o sx, syLeftUp 1Delay clng(tD)sx = sx + xcsy = sy + ycIf sx=endx Thenxc = 0End IfIf sy=endy Thenyc=0End IfNextEnd Sub代码2 作者:dinwidi//点到点直线移动,先走x轴横坐标直线,然后转折走y轴纵坐标直线,直至终点(这是游戏里常用的单步移动的原理)Call 老鼠慢慢跑(100,100,800,600,5)Sub 老鼠慢慢跑(x1, y1, x2, y2, t)MoveTo x1,y1i = 0For abs(x1 - x2)LeftDown 1MoveT o x1+(x2-x1)/abs(x2-x1)*i,y1Delay tLeftUp 1i = i + 1Nexti = 0For abs(y1 - y2)+1LeftDown 1MoveT o x2, y1 + (y2 - y1) / abs(y2 - y1) * iLeftUp 1Delay ti = i + 1NextEnd SubNO.3-点到点模拟鼠标真实移动——直线+振动代码作者:lucky619486332//点到点直线移动,移动中鼠标轻微震动Call 老鼠慢慢跑(100,100,800,600,50)Sub 老鼠慢慢跑(x1, y1, x2, y2, t)MoveT o x1,y1While x2 - x1 <> 0 and y2 - y1 <> 0d1 = x2 - x1 : d2 = y2 - y1If abs(d1) >= abs(d2) Thenxt = int(abs(d1 / d2))For xtLeftDown 1MoveR d1 / abs(d1), 0LeftUp 1Delay tNextLeftDown 1MoveR 0, d2 / abs(d2)LeftUp 1Delay tElseyt=int(abs(d2 / d1))For ytLeftDown 1MoveR 0, d2 / abs(d2)LeftUp 1Delay tNextLeftDown 1MoveR d1 / abs(d1), 0LeftUp 1Delay tEnd IfGetCursorPos x1, y1WendEnd SubNO.4-点到点模拟鼠标真实移动——曲线代码作者:xxx_mailSub 鼠标慢慢跑(x1,y1,振幅,周期)Dim x0,y0,x,y, 距离,q0,q1,r,t,ax0 = 100y0 = 100MoveT o x0,y0距离=sqr((x1-x0)^2+(y1-y0)^2)q1 = 角度计算((x1-x0),(y1-y0))pi = Atn(1)*8a = 距离/pit=周期/piFor i=0 To pi step 0.001x=x1-距离+i*ay =y1+振幅*sin(i)q0 = 角度计算(x-x1,y-y1)r=sqr((x-x1)^2+(y-y1)^2)x =x1+r*Cos((q0+q1))y = y1 + r * Sin((q0 + q1))LeftDown 1MoveT o x, yLeftUp 1Delay tNextEnd SubFunction 角度计算(x, y)If x = 0 Thenx = 0.0001End IfIf x > 0 and y >= 0 Then角度计算= (Atn(y / x))ElseIf x > 0 and y < 0 Then角度计算= (Atn(y / x))+piElseIf x < 0 Then角度计算= (Atn(y / x)) + pi/2End IfEnd Function。
按键精灵挂机脚本按键精灵挂机脚本是一种自动化工具,它可以模拟按键和鼠标操作,从而实现自动化执行特定任务的功能。
这个脚本可以广泛应用于各种场景,比如在游戏中挂机、自动化数据处理等。
按键精灵挂机脚本的基本原理是通过编写脚本代码来控制按键精灵软件,实现特定任务的自动化。
脚本代码使用一种简单易懂的编程语言,如按键精灵提供的脚本语言或其他脚本语言,比如Python 等。
通过编写脚本代码,可以定义按键精灵软件在特定场景下的行为,比如模拟按键、移动鼠标、点击、输入文本等。
按键精灵挂机脚本的应用非常广泛。
在游戏中挂机是其中一个主要应用场景。
很多游戏中存在一些比较重复且无聊的任务,比如打怪、刷经验等。
使用按键精灵挂机脚本可以实现自动化执行这些任务,从而解放玩家的双手,让他们能够更加轻松地享受游戏的乐趣。
同时,由于脚本代码可以根据具体情况进行定制化,所以按键精灵挂机脚本还可以根据玩家的需求,实现更加精确和高效的操作。
另外,按键精灵挂机脚本还可以应用于自动化数据处理。
在许多工作中,存在大量的重复性任务,比如数据录入、数据清洗等。
使用按键精灵挂机脚本可以将这些任务自动化执行,从而提高工作效率和准确度。
同时,脚本代码的灵活性也使得按键精灵挂机脚本可以根据具体情况进行自定义,从而满足不同工作场景的需求。
当然,按键精灵挂机脚本也存在一些局限性。
首先,它只能模拟人工操作,因此在某些情况下可能会受到某些限制。
例如,在某些游戏中存在防外挂机制,可能会检测到按键精灵脚本的自动化操作,从而导致封号等不良后果。
此外,脚本代码编写需要一定的技术水平,对于非技术背景的用户来说可能存在一定的学习门槛。
总的来说,按键精灵挂机脚本是一种非常有用的自动化工具。
它可以应用于各种场景,从游戏挂机到数据处理等。
通过编写脚本代码,可以实现特定任务的自动化执行,提高工作效率和准确度。
然而,对于使用者来说也需要注意,遵循游戏规则,避免违规操作。
制作按键小精灵方案
1. 简介
按键小精灵是一个用于模拟按键操作的软件解决方案。
它可以自动执行按键操作,如按下键盘上的特定按键、组合键等。
按键小精灵常用于自动化任务和游戏辅助等领域。
本文档将介绍如何制作一个简单的按键小精灵方案,以满足个性化需求。
2. 准备工作
在开始制作按键小精灵之前,你需要准备以下工具和环境:
•一台运行 Windows 操作系统的计算机。
•编程语言:Python。
•相应的 Python 开发环境。
3. 安装依赖库
在制作按键小精灵之前,我们需要安装一个 Python 的第三方库,用于模拟按键操作。
这个库叫做pyautogui,可以通过以下命令进行安装:
pip install pyautogui
4. 编写代码
接下来,我们需要编写一个 Python 脚本来实现按键小精灵的功能。
下面是一个示例脚本:
```python import pyautogui import time
def press_key(key, duration): pyautogui.press(key) time.sleep(duration) pyautogui.keyUp(key)
示例按键小精灵方案
press_key(’w’, 1) # 按下并持续按住。
学习游戏辅助制作:按键精灵模拟鼠标动作防检测来源:按键学院【按键精灵】有些游戏会检测到鼠标动作.频繁相同的点击很容易让游戏检测到我们使用了按键,这样的情况下,我们需要模拟鼠标移动,让鼠标像真是手动操作一样,慢慢的移动到终点。
论坛里的一位大牛:we似曾相识曾经开展了"老鼠慢慢跑"的比赛征集帖,收集了各式各样模拟鼠标移动的代码,我们一起来看看~~~内容提要1、点到点模拟鼠标真实移动——直线2、点到点模拟鼠标真实移动——直线+转折3、点到点模拟鼠标真实移动——直线+振幅4、点到点模拟鼠标真实移动——曲线场景在mspaint画图工具中,让鼠标从点100,100移动到点800,600NO.1-点到点模拟鼠标真实移动——直线代码1 作者:林家铺子x1 = 800 : y1 = 600 //目标点x2 = 100 : y2 = 100//起始点MoveT o x2,y2k = (y2 - y1) / (x2 - x1)b = y2 - k * x2For x = x2 To x1 Step sgn(x1 - x2)//sgn函数为返回表示数字符号的整数。
当(x1 - x2)>0时,返回值为1.当(x1 - x2)<0时,返回值为-1.当=0时,返回值为0LeftDown 1MoveT o x, (k * x + b)LeftUp 1Delay 1Next代码2 作者:_雪狼Call 鼠标慢慢跑(100,100,800,600,5)Sub 鼠标慢慢跑(x1, y1, x2, y2,time1)Dim a, x, y, ix = x1 : y = y1a = x2 / y2MoveT o x1, y1For i = y T o y2-1y = y + 1x = y * aLeftDown 1MoveTo x, yDelay time1NextEnd Sub代码3-变速作者:playandhappy//点到点直线移动,鼠标移动速度开始快后来越来越慢Call 老鼠慢慢跑(100,100,800,600,100)Sub 老鼠慢慢跑(x1,y1,x2,y2,times)MoveT o x1,y1While abs(x1-x2)>5 or abs(y1-y2)>5GetCursorPos x1, y1LeftDown 1MoveR (x2 - x1) / 4, (y2 - y1) / 4LeftUp 1Delay timesWendLeftDown 1MoveT o x2, y2LeftUp 1End Sub代码4-移动次数作者:fuyong198010222//点到点直线移动,并且可以设置移动几次到达目标地点Dim a, b, c, d ,n,t //起点(100,100),终点(800,600)a = 100 :b = 100 :c = 800 :d = 600//匀速直线移动UserVar n=100 "多少次移动到位"UserVar t=50 "每一次移动相隔多少时间"Call 老鼠慢慢跑()Sub 老鼠慢慢跑MoveT o a, bDelay tFor nx = (c - a) / n : y = (d - b) / nLeftDown 1MoveR x, yLeftUp 1Delay tNextEnd Sub代码5-移动间隔作者:xuyuzuiMoveT o 100,100Call 老鼠慢慢跑(800, 600, 5, 50)Sub 老鼠慢慢跑(x, y, mousestep, mouseDelay)'x,y : 移动终点坐标' mousestep: 移动间距'mouseDelay : 移动时间间隔(ms)Dim Xstep, YstepDim curx, cury, PianYiX, PianYiYGetCursorPos curx, curyIf abs(curx - x) < mousestep And abs(cury - y) < mousestep ThenLeftDown 1MoveTo x, yLeftUp 1Exit SubEnd IfXstep = (x - curx) / mousestepYstep = (y - cury) / mousestepIf abs(Xstep) > abs(Ystep) ThenPianYiX = mousestep * sgn(Xstep)PianYiY = (y - cury) / abs(Xstep)ElsePianYiX = (x - curx) / abs(Ystep)PianYiY = mousestep * sgn(Ystep)End IfLeftDown 1MoveR PianYiX, PianYiYLeftUp 1Delay mouseDelayCall 老鼠慢慢跑(x, y, mousestep, mouseDelay)End SubNO.2-点到点模拟鼠标真实移动——直线+转折代码1 作者:VBS技术者//tD几毫秒移动一点call 鼠标慢慢跑(100,100,800,600,5)Sub 鼠标慢慢跑(X1,Y1,X2,Y2,tD)Dim xl,yl,xc,yc,endx,endy,sx,syDim FORC,ixl=abs(clng(X1)-clng(X2))yl=abs(clng(y1)-clng(y2))EndX = X2EndY = Y2XC=1YC=1sx=x1sy=y1If clng(X1)>=clng(X2) ThenEndX = X1xc = -1End IfIf clng(Y1)>=clng(Y2) ThenEndY = Y1yc = -1End IfIf xl>yl ThenFORC = xlElseFORC = ylEnd IfFor i = 1 To FORC+1LeftDown 1MoveT o sx, syLeftUp 1Delay clng(tD)sx = sx + xcsy = sy + ycIf sx=endx Thenxc = 0End IfIf sy=endy Thenyc=0End IfNextEnd Sub代码2 作者:dinwidi//点到点直线移动,先走x轴横坐标直线,然后转折走y轴纵坐标直线,直至终点(这是游戏里常用的单步移动的原理)Call 老鼠慢慢跑(100,100,800,600,5)Sub 老鼠慢慢跑(x1, y1, x2, y2, t)MoveTo x1,y1i = 0For abs(x1 - x2)LeftDown 1MoveT o x1+(x2-x1)/abs(x2-x1)*i,y1Delay tLeftUp 1i = i + 1Nexti = 0For abs(y1 - y2)+1LeftDown 1MoveT o x2, y1 + (y2 - y1) / abs(y2 - y1) * iLeftUp 1Delay ti = i + 1NextEnd SubNO.3-点到点模拟鼠标真实移动——直线+振动代码作者:lucky619486332//点到点直线移动,移动中鼠标轻微震动Call 老鼠慢慢跑(100,100,800,600,50)Sub 老鼠慢慢跑(x1, y1, x2, y2, t)MoveT o x1,y1While x2 - x1 <> 0 and y2 - y1 <> 0d1 = x2 - x1 : d2 = y2 - y1If abs(d1) >= abs(d2) Thenxt = int(abs(d1 / d2))For xtLeftDown 1MoveR d1 / abs(d1), 0LeftUp 1Delay tNextLeftDown 1MoveR 0, d2 / abs(d2)LeftUp 1Delay tElseyt=int(abs(d2 / d1))For ytLeftDown 1MoveR 0, d2 / abs(d2)LeftUp 1Delay tNextLeftDown 1MoveR d1 / abs(d1), 0LeftUp 1Delay tEnd IfGetCursorPos x1, y1WendEnd SubNO.4-点到点模拟鼠标真实移动——曲线代码作者:xxx_mailSub 鼠标慢慢跑(x1,y1,振幅,周期)Dim x0,y0,x,y, 距离,q0,q1,r,t,ax0 = 100y0 = 100MoveT o x0,y0距离=sqr((x1-x0)^2+(y1-y0)^2)q1 = 角度计算((x1-x0),(y1-y0))pi = Atn(1)*8a = 距离/pit=周期/piFor i=0 To pi step 0.001x=x1-距离+i*ay =y1+振幅*sin(i)q0 = 角度计算(x-x1,y-y1)r=sqr((x-x1)^2+(y-y1)^2)x =x1+r*Cos((q0+q1))y = y1 + r * Sin((q0 + q1))LeftDown 1MoveT o x, yLeftUp 1Delay tNextEnd SubFunction 角度计算(x, y)If x = 0 Thenx = 0.0001End IfIf x > 0 and y >= 0 Then角度计算= (Atn(y / x))ElseIf x > 0 and y < 0 Then角度计算= (Atn(y / x))+piElseIf x < 0 Then角度计算= (Atn(y / x)) + pi/2End IfEnd Function。