学习脚本制作:按键精灵解决游戏辅助卡死
- 格式:docx
- 大小:4.31 MB
- 文档页数:5
学习怎么用按键精灵制作游戏辅助——脚本源代码干货分享一、用按键精灵确定人物朝向(以剑灵自动寻路为例)的代码在剑灵右上角的小地图里找色/找图,箭头坐标存储在(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// 基数归位(排完一轮之后左边的数<基数<右边的数那么基数就到了排序中它该在的位置。
方法三:我认为大华的成本核算应该选择分类法和逐步分项结转法。
首先大华服装公司的男女西服两种产品所用原料和工艺技术过程相同,可以归一类计算产品成本,因而最适宜采用分类法计算成本。
其次,根据题目所给的材料可知,大华公司男女西服一开始就没有分开计算成本,所以我认为采用分类法计算是符合大华公司产品成本计算的。
结合本公司的特点和管理上的要求本组采用分项逐步结转分步法:1、其能直接、准确提供按原始成本项目反映的产成品成本资料,便于从整个企业角度考核和分析产品成本计划的执行情况2、此方法的半成品成本都是随着半成品实物的转移而结转,各生产步骤产品明细账中的生产费用余额,反映了留存在各个生产步骤的在产品成本中,因而能为在产品的实物管理和生产资金管理提供资料。
累计完工率在分项结转分步法中,约当产量的计算需要使用累计完工率。
累计完工率=(以前各工序工时定额之和+本工序工时定额×本工序完工率)÷(以面各工序工时定额之和+本工序工时定额)我们发现计算累计完工率的关键在于工时定额的测算。
工时定额的取得;(1通过总结过去的经验:通过询问服装厂工艺人员经验我们得到以下信息,西服裁剪、缝纫、平整分别需要0.5h、7h、1h。
(2以同类产品的工件或工序的时间定额为依据进行对比分析后推算出来:通过网上资料搜寻发现日产量为1200件的服装厂西服裁剪缝纫、平整分别需要82s、885s、115s。
通过观察累计完工率的公式我们发现,由于计算累计完工率需要的是各工序工时定额的比,经过测算各工序定额工时占定额工时比例可以得知:项目裁剪工序缝纫工序平整工序总结过去的经验的到数值5%80%15%以同类产品为依据进行对比分析 6.6%81.7%11.7%两种测算方法的到各工序工时定额占定额工时比例基本相同,为了简化运算,我们采用总结过去的经验所得到的工时定额计算累计完工率。
累计完工率的计算:裁剪车间的累计完工率=0.5*40%/0.5=40%缝纫车间的累计完工率=0.5+7*60%/(0.5+7=62.67%平整车间的累计完工率=0.5+7+1*50%/(0.5+7+1=94.12%裁剪车间成本计算单直接材料直接工资其他直接费用制造费用合计月初在产品成本1000001140020004000117400本月发生费用63600091200600018000751200上步费用- - - - -费用合计73600102600800022000868600本月完工产量2000200020002000-月末在产品120120120120-累计完工率100%40%40%40%-约当产量120484848-产量合计2120204820482048-分配率347.17 50.10 3.91 10.74-完工成本69434100200782021480823840在产品成本41660240018052044760缝纫车间成本计算单直接材料直接工资其他直接费用制造费用合计月初在产品成本- 108001600600018400本月发生费用6000018240090001500026640上步费用6943410020078202148082384费用合计7547429340018420424801109040本月完工产量2200220022002200-月末在产品220220220220-累计完工率100%62.67%62.67%62.67%-约当产量220137137137-产量合计2420233723372337-分配率311.88125.557.8818.18-完工成本68613627621017336399961019678在产品成本68604117190 1084 2484189362平整车间成本计算单直接材料直接工资其他直接费用制造费用合计月初在产品成本- 91202000240013520本月发生费用120006420080001200096200上步费用68613627621017336399961019678费用合计69813634953027336543961126998本车间完工-产量2400240024002400- 月末在产品80808080-累计完工率100%94.12% 94.12% 94.12%- 约当产量80 757575- 产量合计2480247524752475-分配率281.51141.2211.0421.97完工成本67562433892826496527281093776本车间在产品成本2251210602840 1668 35622类成本分配计算单项目产量(件)直接材料费用系数直接材料费用总系数直接材料直接人工制造费用其他费用合计分配率301.61141.2221.9711.04—女西服8000.8640193032112976175768832332416男西服1600116004825922259523515217664761360合计2400224067562433892852728264961093776方法四:我认为大华的成本核算应该选择分类法和品种法。
脚本开发教程:按键精灵解决游戏设置来源:按键学院【按键精灵】“啊~怎么回事?用你的脚本,它就像傻逼一样,一直重复的开启关闭游戏设置界面?" 许多脚本作者会遇到这样的问题。
其实只是用户没有设置好游戏分辨率,脚本无法识别下一步,所以重复的开启关闭游戏设置界面。
即便是脚本作者很细心的把脚本使用环境都讲解得很仔细。
但是总会有人忽略,或者是设置不来,或者是要设置的地方真的很多,设置好了游戏分辨率又忘记了修改快捷键。
有什么办法,可以让这样的情况不发生呢?解决方法:许多游戏会把游戏设置保存在某个文件,我们在本机上设置好游戏设置保存之后,复制这个游戏设置文件,用它覆盖掉使用者电脑上的游戏设置文件,即可让使用者电脑的游戏设置和本机的一致。
小编之前接触过的某灵游戏,在我的文档->BnS->NCSOFT->ClientConfiguration.xmlClientConfiguration.xml 这个文件保存了游戏的界面设置,快捷键设置、画面设置等。
我们以某灵游戏为例子,操作下该如何用脚本替换掉游戏设置文件。
步骤:首先,先获取游戏配置文件的路径。
然后将使用者电脑上原有的游戏配置文件先删除掉,再把脚本附件中的游戏设置文件释放到使用者电脑上。
1、我的文档->BnS->NCSOFT->ClientConfiguration.xml我的文档,这个文件夹的路径要怎么获取呢?每台电脑的我的文档的路径有可能是不一样的。
例如:在小编旁边的那台win7电脑,它的路径是这样的:C:\Documents and Settings\ceshiji\My Documents\BnS\NCSOFT\ClientConfiguration.xml而小编的电脑,xp系统的,路径则是这样的:D:\Backup\我的文档\BnS\NCSOFT\ClientConfiguration.xml介个……怎么办才好呢?我们可以使用下面的这一句代码来获取,我的文档的路径:返回值=CreateObject("Shell.Application").Namespace(&H5).Self.Path//获取当前用户的“我的文档”文件夹路径2、某灵这个游戏,退出之后会还原游戏设置。
脚本制作教程:按键精灵加速游戏来源:按键学院【按键精灵】植物大战僵尸这款游戏,想必大家都不陌生讲述的是一场植物与僵尸之间刻骨铭心的撕逼大战是一款老少皆宜和善可爱的游戏……此处省略一万字……但是,问题来了等僵尸的过程也慢得太销魂了吧?画面一点动感刺激感都木有,还怎么玩?~和小编一样急性子的小伙伴们,一定忍受不住节奏如此缓慢的游戏,怎么办呢?凉拌炒鸡蛋!自己动手丰衣足食,咱们写个脚本让它快起来~脚本界面效果图今天的脚本例子是用按键精灵仿写一个《变速精灵》,是咱们的大姐大工程师01制作的。
界面十分骚气~~『1』下拉列表框用于显示当前电脑上运行的程序的窗口标题『2』刷新按钮用于重新获取当前电脑上运行的程序的窗口标题『3』"滑块"用于调整速度,往左是减速,往右是加速。
(大尺度调整)『4』快和慢这两个蓝色的按钮,也是用于调整速度的,与滑块的区别在于:滑块可以一次性拉动很大的范围,而按钮是精确调整的,每一次点击增/减一个单位的速度。
『5』?恢复"按钮",用于将速度归零。
变速命令变速命令是官方新插件里的?SysEx系统插件增强版?下的命令:Speed注意:速度的倍数,范围:-256~256,保留小数点后3位,可以实现1.001、1.002倍速度。
??获取窗口句柄当我们点击刷新按钮的时候,则获取当前运行中的所有程序的窗口句柄,并且将窗口的标题名添加到下拉列表框中。
我们用?FindEx查找窗口句柄?命令遍历获取桌面下的第一级子窗口句柄(桌面句柄:0)但是,我们看到,这些窗口中有许多窗口是我们看不见的,甚至都不知道它是做什么用的。
那我们就没有必要获取它了,只要获取到可见的程序窗口句柄即可。
在遍历获取窗口句柄的过程中,加一个判断,利用?GetWindowState 获取窗口状态命令,判断当前窗口的状态,是否为可见的,如果是可见的窗口,则记录下该窗口的窗口句柄和窗口标题。
滑块拖动为了让界面更加的赏心悦目,所以滑块实际上是一张图片并不是真正的滑块按钮我们要实现,拖动滑块图片,往左右移动的时候,滑块图片会跟随着鼠标移动。
如果你还为一些枯燥、繁琐的电脑操作而烦恼,按键精灵绝对会是你最好的帮手。
那么,按键精灵具体能帮我们干什么呢?我们来列举几个例子来说明下。
*网络游戏中可作脚本实现自动打怪,自动补血,自动说话等;*办公族可用它自动处理表格、文档,自动收发邮件等;脚本就是一系列可以反复执行的命令.通过一些判断条件,可以让这些命令具有一定的智能效果.我们可以通过”录制”功能制作简单的脚本,还可通过”脚本编辑器”制作更加智能的脚本.今天我们就通过录制一个最简单的脚本,来手把手的教大家使用按键精灵。
上网一族一般开机后会先看看自己邮箱,或者看看自己博客;每天如此,可能都有些烦了。
现在好了,把这些繁杂的事情交给按键精灵吧。
今天我们就来录制一个自动登录博客,并对整个页面进行浏览的脚本。
首先,我们打开“按键精灵”。
其运行界面如下(图1):图1运行界面打开软件后点击工具栏上“新建”项(如图2);之后进入“脚本编译器”界面(如图3)。
现在就可以正式开始编译脚本了。
图2xx图3脚本编译器界面在脚本编译器界面上,左键点击工具栏上“录制”项,会出现这样的情况:进入桌面,并出现一个小的对话框(如图4)。
图4录制在这个小的对话框中,左侧红色圆按钮是录制的开始,第二个蓝色方按钮是录制结束,第三个是存储录制内容。
在录制过程中该对话框可以随意移动,不会影响录制结果。
我们来点击红色圆形按钮开始录制(图5)图5开始录制后我们把这个小的对话框移至窗口右下角,然后用鼠标点击左下角任务栏的IE浏览器标志,来打开浏览器(如图6)。
图6打开IE浏览器随后在地址栏输入博客地址(如图7)图7输入地址进入xx主页(如图8)用鼠标拖动滚动条,浏览整个页面。
看完后关闭页面,然后点击录制对话框的蓝色方形停止键(如图9)图9停止录制之后点击第三个按钮,来保存录制动作并进入脚本编译界面。
现在我们可以看到在编译界面的中部,有“按键精灵录制的内容”这句话显示。
这句话的下面有“鼠标移动”、“延时”、“按键动作”等记录的录制过程中的各个动作。
学习怎么用按键精灵制作游戏辅助——整人脚本和游戏副本辅助分享调取系统底层APIGetTickCount函数介绍:GetTickCount返回(retrieve)从操作系统启动所经过(elapsed)的毫秒数,它的返回值是DWORD。
函数声明:Declare Function GetTickCount Lib "kernel32" Alias "GetTickCount" () As Long函数范例:计算当前时间和5秒后的时间差// 获取当前时间TheTime = GetTickCount()// 延时5 秒Delay 5000// 再次获取当前时间,计算时间差TracePrint GetTickCount() - TheTime运行结果:获取时间间隔:函数DateDiff与函数GetTickCount()对比DateDiff只能获取到最小单位为:秒的数值GetTickCount()可以获取到最小单位为:毫秒的数值有时候,脚本的成败往往就在毫秒之间!范例:等图找图大神代码来看看大神提供的等图找图代码段吧~~//声明函数GetTickCountDeclare Function GetTickCount Lib "kernel32" Alias "GetTickCount" () As Long//找出多张图(hsz.bmp、jsj.bmp、ie.bmp)中的其中一张TracePrint 找多图("hsz.bmp|jsj.bmp|ie.bmp")//延迟5000ms,等待图(hsz.bmp)TracePrint 等图_毫秒("hsz.bmp",5000)//延迟5000ms,等待多张图(hsz.bmp、jsj.bmp、ie.bmp)中的其中一张TracePrint 等多图_毫秒("hsz.bmp|jsj.bmp|ie.bmp",5000)Function 找多图_数组(图像列表)找多图_数组= 0For i = 0 To UBound(图像列表)FindPic 0, 0, Plugin.Sys.GetScRX - 1, Plugin.Sys.GetScRY - 1, "Attachment:\" & 图像列表(i), 1, intX, intYIf IntX >= 0 Then找多图_数组= i + 1Exit ForEnd IfNextEnd FunctionFunction 找多图(图像)找多图= 找多图_数组(split(图像,"|"))End FunctionFunction 等图_毫秒(图片, 超时时间)// 利用两次GetTickCount() 得到时间间隔(单位:毫秒)等图_毫秒= TRUE开始时间= GetTickCount()DoIf GetTickCount() - 开始时间> 超时时间Then 等图_毫秒= FALSE:Exit DoFindPic 0, 0, Plugin.Sys.GetScRX - 1, Plugin.Sys.GetScRY - 1, "Attachment:\" & 图片, 1, intX, intYLoop Until IntX >= 0End FunctionFunction 等多图_毫秒(图片, 超时时间)// 利用两次GetTickCount() 得到时间间隔(单位:毫秒)开始时间= GetTickCount()DoIf GetTickCount() - 开始时间> 超时时间Then Exit Do等多图_毫秒= 找多图(图片)Loop Until 等多图_毫秒End Function运行结果:。
按键精灵开发教程:QUI界面不卡死来源:按键学院【按键精灵】Qui界面加载之后卡死?点击控件之后卡死?为什么会出现这种情况?该如何解决?且听小编细细道来~原因QUI界面事件如果添加循环命令,或者延时命令。
添加之后,我们再去点击QUI界面,就会出现卡死的现象。
QUI界面事件:窗口事件以及控件事件统称为界面事件。
界面事件?按键精灵是怎么知道我们点击了哪个控件,鼠标移动到了界面的哪里了呢?其实,我们看似平常的一个操作,例如:移动鼠标到窗口界面上点击输入框。
这样的一个操作,其实是被分解成了几百条消息反馈给按键精灵软件,告诉它鼠标现在在哪里,做了什么,点击了控件,然后控件要响应什么操作等等。
而这些消息,按键精灵软件会逐条处理,处理完这一条才会继续处理下一条。
所以,当它在处理循环事件会延时事件时,没有处理完之前都不处理其它信息。
使用循环命令导致界面卡死的解决方法1、多线程界面上有两个控件,输入框1(InputBox1)和按钮1(Button1)当按下按钮1(Button1)时,启动线程,将延时命令和循环命令放在线程里执行。
循环一百次给输入框赋值。
代码:Event Form1.Button1.ClickBeginThread 循环//启动线程End EventSub 循环For i = 1 To 100Delay 200Form1.InputBox1.T ext = "" & i NextEnd Sub2、定时器定时器的有效设置为否时间间隔设置为200毫秒(执行一次循环需要的时间)当按下按钮1(Button1)时,将定时器的有效设置为是(Form1.Timer1.Enabled = True)定时器每隔200毫秒会执行一次Timer 事件我们在Timer事件中,定义一个变量i,每执行一次Timer时间i的值叠加1,直到i的值等于我们设置循环次数,则将定时器的有效设置为否。
代码:Event Form1.Button1.ClickForm1.Timer1.Enabled = TrueEnd EventEvent Form1.Timer1.Timeri = i + 1If i= 100 then Form1.Timer1.Enabled=FalseForm1.InputBox1.T ext = "" & iEnd Event3、API函数我们已经知道了,界面卡住,是因为在处理循环命令时,产生了其它的消息导致的。
按键精灵网游脚本编写教程一、键盘命令(2~5页)二、鼠标命令(5~13页)三、控制命令(13~22页)四、颜色/图像命令(22~28页)五、其他命令(28~355页)五、网游脚本实例(35~最后)一、键盘命令命令名称: GetLastKey 检测上次按键命令功能: 检测上次按键命令参数:参数1整数型,可选:变量名返回值:无脚本例子: (8.x语法) 复制代码1.//脚本运行到这一行不会暂停,调用的时候立即返回,得到调用之前最后一次按下的按键码保存在变量Key里。
2.Key=GetLastKey()3.If Key = 13Then4. Msgbox"你上次按下了回车键"5.EndIf脚本例子:ﻫ(7.x语法) 复制代码1.//脚本运行到这一行不会暂停,调用的时候立即返回,得到调用之前最后一次按下的按键码保存在变量Key里。
2.GetLastKey Key3.If Key = 134. Msgbox "你上次按下了回车键"5.EndIf命令名称: KeyDown 按住命令功能: 键盘按住命令参数: 参数1整数型,键盘虚拟码(8.X支持按键字符)参数2整数型,次数返回值: 无脚本例子:ﻫ(8.x语法)复制代码1.//KeyDown、KeyDownS、KeyDownH2.//KeyDownS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的键盘都可以使用3.//KeyDownH:硬件模拟方式,仅支持PS(圆口)的键盘点击查看使用硬件模拟方式的注意事项4.KeyDown 65,15.//65是A键的按键码,上面的语句表示按住A键1次6.7.KeyDown "A",18.//上面的支持按键字符,语句表示按住A键1次脚本例子:(7.x语法) 复制代码1.//KeyDown、KeyDownS、KeyDownH2.//KeyDownS:超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的键盘都可以使用3.//KeyDownH: 硬件模拟方式,仅支持PS(圆口)的键盘点击查看使用硬件模拟方式的注意事项4.KeyDown65,15.//65是A键的按键码,上面的语句表示按住A键1次命令名称:KeyPress按键命令功能:键盘按键命令参数:参数1整数型,键盘虚拟码(8.X支持按键字符)ﻫ参数2整数型,次数返回值:无脚本例子: (8.x语法)复制代码1.//KeyPress、KeyPressS、KeyPressH2.//KeyPressS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的键盘都可以使用3.//KeyPressH: 硬件模拟方式,仅支持PS(圆口)的键盘点击查看使用硬件模拟方式的注意事项4.KeyPress 65,15.//65是A键的按键码,上面的语句表示按A键1次6.7.KeyPress"A",18.//上面的支持按键字符,语句表示按A键1次脚本例子:(7.x语法) 复制代码1.//KeyPress、KeyPressS、KeyPressH2.//KeyPressS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的键盘都可以使用3.//KeyPressH:硬件模拟方式,仅支持PS(圆口)的键盘点击查看使用硬件模拟方式的注意事项4.KeyPress 65,15.//65是A键的按键码,上面的语句表示按A键1次命令名称:KeyUp 弹起命令功能: 键盘弹起命令参数: 参数1 整数型,键盘虚拟码(8.X支持按键字符)ﻫ参数2整数型,次数返回值: 无脚本例子: (8.x语法) 复制代码1.//KeyUp、KeyUpS、KeyUpH2.//KeyUpS:超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的键盘都可以使用3.//KeyUpH: 硬件模拟方式,仅支持PS(圆口)的键盘点击查看使用硬件模拟方式的注意事项4.KeyUp 65,15.//65是A键的按键码,上面的语句表示松开A键1次6.7.KeyUp "A",18.//上面的支持按键字符,语句表示松开A键1次脚本例子: (7.x语法) 复制代码1.//KeyUp、KeyUpS、KeyUpH2.//KeyUpS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的键盘都可以使用3.//KeyUpH: 硬件模拟方式,仅支持PS(圆口)的键盘点击查看使用硬件模拟方式的注意事项4.KeyUp 65,15.//65是A键的按键码,上面的语句表示松开A键1次命令名称: WaitKey等待按任意键命令功能: 等待按任意键命令参数:参数1整数型,可选:变量名返回值: 无脚本例子:ﻫ(8.x语法) 复制代码1.Key=WaitKey()2.//脚本运行到这一行会暂停,当用户按下键盘后继续执行,并且把用户的按键码保存在变量Key里3.If Key = 13 Then4. MessageBox "恭喜你按下了回车键"5.End If脚本例子: (7.x语法)复制代码1.WaitKey Key2.//脚本运行到这一行会暂停,当用户按下键盘后继续执行,并且把用户的按键码保存在变量Key里3.If Key = 134. Msgbox "恭喜你按下了回车键"5.EndIf二、鼠标命令命令名称:GetCursorPos得到鼠标位置坐标命令功能: 得到当前鼠标所在的位置坐标命令参数: 参数1 整数型,返回x坐标ﻫ参数2整数型,返回y坐标返回值: 无脚本例子: (8.x语法) 复制代码1.GetCursorPos mx,my2.//把当前鼠标位置的x和y坐标放在变量mx和my中脚本例子:ﻫ(7.x语法)复制代码1.VBSCall GetCursorPos(mx,my)2.//把当前鼠标位置的x和y坐标放在变量mx和my中命令名称:GetCursorShape得到鼠标形状命令功能: 得到当前鼠标的形状特征命令参数: 参数1整数型,参数返回值:整数型,鼠标的形状值脚本例子:ﻫ(8.x语法) 复制代码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.EndIf脚本例子: ﻫ(7.x 语法) 复制代码1.//参数: 0 是6.83之前的版本默认的参数2.//参数: 1 可用于一些在参数0下无法区分鼠标形状代码的情况3.//下面是我们普通的WINDOWS鼠标形状特征4.//不同电脑上鼠标形状特征也许不同,请使用"抓点抓色"功能抓取正确的鼠标形状特征5.Shape1 = 15933502876.//下面是我们访问网页超链接时候的手型鼠标形状7.Shape2 = 10559913298.VBSCall Shape=GetCursorShape(0)9.Ifshape = shape110.MessageBox当前鼠标形状是普通的WINDOWS鼠标11.ElseIf shape = shape212. MessageBox 当前鼠标形状是手型鼠标13.Else14. MessageBox 不认识当前鼠标形状!15.EndIf命令名称: GetLastClick 检测上次按过的鼠标键命令功能:检测上一次按下的鼠标代码命令参数: 参数1 整数型,可选:变量名返回值:无脚本例子:ﻫ(8.x 语法)复制代码1.Mouse=GetLastClick()2.If Mouse =32770Or Mouse =32769 Then3.Msgbox "你按下了鼠标左键"4.End If脚本例子:ﻫ(7.x语法) 复制代码1.GetLastClick Mouse2.IfMouse =32770 Or Mouse =327693. Msgbox "你按下了鼠标左键"4.EndIf命令名称:LeftClick 左键单击命令功能:模拟点击鼠标左键命令参数: 参数1 整数型,次数返回值:无脚本例子: (8.x语法) 复制代码1.//LeftClick、LeftClickS、LeftClickH2.//LeftClickS:超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用3.//LeftClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标点击查看使用硬件模拟方式的注意事项4.LeftClick 55.//在当前鼠标的位置单击鼠标左键5次脚本例子: (7.x语法) 复制代码1.//LeftClick、LeftClickS、LeftClickH2.//LeftClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用3.//LeftClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标点击查看使用硬件模拟方式的注意事项4.LeftClick 55.//在当前鼠标的位置单击鼠标左键5次命令名称: LeftDoubleClick 左键双击命令功能: 模拟双击鼠标左键命令参数:参数1整数型,次数返回值:无脚本例子:(8.x语法)复制代码1.//LeftDoubleClick、LeftDoubleClickS、LeftDoubleClickH]2.//LeftDoubleClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用3.//LeftDoubleClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标点击查看使用硬件模拟方式的注意事项4.LeftDoubleClick 55.//在当前鼠标的位置双击鼠标左键5次脚本例子:复制代码(7.x语法)1.//LeftDoubleClick、LeftDoubleClickS、LeftDoubleClickH]2.//LeftDoubleClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用3.//LeftDoubleClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标点击查看使用硬件模拟方式的注意事项4.LeftDoubleClick 55.//在当前鼠标的位置双击鼠标左键5次命令名称:LockMouse 锁定鼠标位置命令功能:锁定鼠标位置,用户将不能通过移动鼠标而改变鼠标位置,而脚本仍可以改变鼠标位置命令参数:无返回值:无脚本例子:(8.x语法)复制代码1.//在脚本开始的时候使用这个命令,可以有效防止用户误触鼠标引起脚本执行出错2.LockMouse3.Do4.Delay 10005.Loop脚本例子: (7.x语法) 复制代码1.//在脚本开始的时候使用这个命令,可以有效防止用户误触鼠标引起脚本执行出错2.LockMouse3.WhileTrue4.Delay 10005.EndWhile命令名称: MiddleClick中键单击命令功能: 模拟点击鼠标中键命令参数: 参数1整数型,次数返回值:无脚本例子:ﻫ(8.x语法) 复制代码1.//MiddleClick、MiddleClickS、MiddleClickH2.//MiddleClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用3.//MiddleClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标点击查看使用硬件模拟方式的注意事项4.MiddleClick 55.//在当前鼠标的位置单击鼠标中键5次脚本例子: ﻫ(7.x语法) 复制代码1.//MiddleClick、MiddleClickS、MiddleClickH2.//MiddleClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用3.//MiddleClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标点击查看使用硬件模拟方式的注意事项4.MiddleClick 55.//在当前鼠标的位置单击鼠标中键5次命令名称: MouseWheel鼠标滚轮命令功能:滚动鼠标滚轮命令参数: 参数1整数型,滚动量返回值:无脚本例子:ﻫ(8.x 语法)复制代码1.//如果滚动量为正,向上滚动;否则向下滚动.2.//仅支持Windows 2000以上的操作系统.3.MouseWheel 14.//把鼠标滚轮向上滚动1格脚本例子:(7.x语法) 复制代码1.//如果滚动量为正,向上滚动;否则向下滚动.2.//仅支持Windows2000以上的操作系统.3.MouseWheel 14.//把鼠标滚轮向上滚动1格命令名称: MoveR 鼠标相对移动命令功能:鼠标相对移动到命令参数: 参数1 整数型,X距离ﻫ参数2整数型,Y距离返回值:无脚本例子:ﻫ(8.x语法) 复制代码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.x语法)复制代码1.//MoveR、MoveRS、MoveRH2.//MoveRS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用3.//MoveRH: 硬件模拟方式,仅支持PS(圆口)的鼠标点击查看使用硬件模拟方式的注意事项4.//当前鼠标在(100,100)点,使用下面语句5.MoveR 200,3006.//之后,鼠标就被移到了(100+200,100+300)处,也就是坐标(300,400)处7.//提示:使用硬件模拟方式不能碰键盘鼠标,否则会导致出错命令名称:MoveTo鼠标移动命令功能:移动鼠标到命令参数: 参数1 整数型,X坐标ﻫ参数2 整数型,Y坐标返回值: 无脚本例子:ﻫ(8.x 语法) 复制代码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.x语法) 复制代码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以上版本支持.命令名称:RestoreMousePos恢复上次保存的鼠标位置命令功能: 保存当前鼠标位置命令参数:无返回值: 无脚本例子: (8.x语法) 复制代码1.SaveMousePos2.//保存当前鼠标位置3.Delay1004.MoveTo 500,205.Delay 1006.RestoreMousePos7.//将鼠标移动到上一次保存的鼠标位置8.//保存/恢复鼠标位置常用于制作网络游戏练功脚本,脚本开始时保存鼠标位置,脚本结束时恢复鼠标位置,9.//这样脚本执行后鼠标的位置就不会变化脚本例子: ﻫ(7.x语法) 复制代码1.SaveMousePos2.//保存当前鼠标位置3.Delay 1004.MoveTo 500,205.Delay 1006.RestoreMousePos7.//将鼠标移动到上一次保存的鼠标位置8.//保存/恢复鼠标位置常用于制作网络游戏练功脚本,脚本开始时保存鼠标位置,脚本结束时恢复鼠标位置,9.这样脚本执行后鼠标的位置就不会变化命令名称: RightClick 右键单击命令功能: 模拟点击鼠标右键命令参数:参数1 整数型,次数返回值:无脚本例子:ﻫ(8.x语复制代码1.//RightClick、RightClickS、RightClickH2.//RightClickS:超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的法)鼠标都可以使用3.//RightClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标点击查看使用硬件模拟方式的注意事项4.RightClick 55.//在当前鼠标的位置单击鼠标右键5次脚本例子: (7.x语法) 复制代码1.//RightClick、RightClickS、RightClickH2.//RightClickS:超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用3.//RightClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标点击查看使用硬件模拟方式的注意事项4.RightClick 55.//在当前鼠标的位置单击鼠标右键5次命令名称: SaveMousePos 保存当前鼠标所在位置命令功能: 保存当前鼠标位置命令参数: 无返回值: 无脚本例子:(8.x语法) 复制代码1.SaveMousePos2.//保存当前鼠标位置3.Delay1004.MoveTo 500,205.Delay 1006.RestoreMousePos7.//将鼠标移动到上一次保存的鼠标位置8.//保存/恢复鼠标位置常用于制作网络游戏练功脚本,脚本开始时保存鼠标位置,脚本结束时恢复鼠标位置,9.//这样脚本执行后鼠标的位置就不会变化脚本例子: ﻫ(7.x语法) 复制代码1.SaveMousePos2.//保存当前鼠标位置3.Delay 1004.MoveTo 500,205.Delay 1006.RestoreMousePos7.//将鼠标移动到上一次保存的鼠标位置8.//保存/恢复鼠标位置常用于制作网络游戏练功脚本,脚本开始时保存鼠标位置,脚本结束时恢复鼠标位置,9.这样脚本执行后鼠标的位置就不会变化命令名称: UnlockMouse解除锁定鼠标位置命令功能:解除LockMouse命令对鼠标位置的锁定命令参数:无返回值: 无脚本例子:ﻫ(8.x 语法) 复制代码1.脚本例子:(7.x语法) 复制代码1.//如果用户使用了LockMouse命令而没有使用UnlockMouse命令,按键精灵会在脚本结束时自动解除锁定2.UnlockMouse命令名称: WaitClick 按任意鼠标键继续命令功能:脚本执行到这一句暂停,按下任意鼠标键之后继续命令参数:参数1 整数型,可选:变量名返回值:无脚本例子:ﻫ(8.x语法) 复制代码1.last_click=WaitClick()2.MessageBox "您按下了" & last_click脚本例子: (7.x语法) 复制代码1.WaitClick last_click2.MessageBox "您按下了" & last_click三、控制命令脚本例子: (8.x语法)复制代码1.Call子程序("我是子程序,被你调用了")2.EndScript3.//支持中文名变量4.Sub子程序(啊)5. Msgbox啊6.End Sub7.//定义一个过程,可以在脚本中调用这个过程脚本例子:(7.x语法)复制代码命令名称: Do 循环命令功能: 条件循环命令参数:参数1条件型,循环条件返回值:无脚本例子:ﻫ(8.x 语法) 复制代码1.例子1:2.//支持Exit Do命令退出循环3.i=04.DoWhile i=05. Msgbox "我停不下来啦!!快住手"6.Loop7.//当循环条件成立的时候,反复执行循环体8.9.10.例子2:11.i=012.DoUntil i=013. Msgbox "为什么没有循环到我呢?"14.Loop15.Msgbox "循环结束"16.//当循环条件成立的时候,离开循环体17.18.19.例子3:20.i=021.Do Untili=122.Msgbox "我停不下来啦!!快住手"23.Loop24.//当循环条件不成立的时候,反复执行循环体25.26.27.例子4:28.n=029.DoWhile true30. Msgbox "我将循环10次停下来!!"31.If n>=10 Then32. //当循环条件成立的时候,离开循环体33.Exit do34.End if35. n=n+136.Loop37.Msgboxn & "次"38.39.40.例子5:41.i = 042.Do43. MessageBox "ok"44.Loop While i <> 045.//条件放后面,前面的循环内容可以执行一次!脚本例子: ﻫ(7.x语法) 复制代码1.无命令名称:For 循环命令功能: 循环一定次数命令参数: 参数1 整数型,循环次数返回值:无脚本例子:ﻫ(8.x 语法) 复制代码1.例子1:2.//支持Exit For 命令退出循环3.For i=0 To 94.Delay1005.Next6.//循环10次7.8.例子2:9.//支持ExitFor命令退出循环10.For 1011.Delay10012.Next13.//循环10次14.15.16.例子3:17.//支持Exit For 命令退出循环18.For i=0 to 19 step 219.Delay 10020.Next21.//循环10次22.23.例子4:24.//支持Exit For 命令退出循环25.For i=0 to 19 step 226.Delay 10027.If i>9 Then28.Exit For29.End If30.Next31.//循环5次脚本例子: ﻫ(7.x 语法) 复制代码1.For 102.Delay1003.EndFor4.//循环10次命令名称:Function 函数命令功能: 函数命令参数: 多类型,多参数返回值: 多类型脚本例子:ﻫ(8.x 语法) 复制代码1.//支持Exit Function 命令退出函数过程2.Msgbox 函数过程("我是函数,被你调用了")3.EndScript4.Function函数过程(a)5.函数过程=a6.End Function7.//定义一个函数过程,可以在脚本中调用这个函数脚本例子:ﻫ(7.x语法) 复制代码1.无命令名称:Gosub调用子程序命令功能:调用过程命令参数: 参数1字符串型,过程名返回值:无脚本例子:(8.x语法)复制代码1.//可带参数传递2.Call子程序("我是子程序,被你调用了")3.EndScript4.Sub子程序(a)5. Msgbox a6.End Sub7.//定义一个过程,可以在脚本中调用这个过程脚本例子: ﻫ(7.x 语法) 复制代码1.Gosub子程序2.EndScript3.Sub子程序4. Msgbox "我是子程序,被你调用了"5.Return子程序6.//定义一个过程,可以在脚本中调用这个过程命令名称:Goto 跳转到标记命令功能: 跳转到Rem标记处命令参数:参数1 字符串型,标号返回值: 无脚本例子:ﻫ(8.x 语法)复制代码1.Goto标记2.Delay 1003.Rem标记4.Msgbox"你直接跳到这里了!!,上面的延迟没有被执行!!"5.//跳转语句,可以跳转到rem标记过的标记处继续执行脚本例子:(7.x语法) 复制代码 1. Goto 标记2. D elay 1003. Rem 标记4. Msgbox "你直接跳到这里了!!,上面的延迟没有被执行!!"5. //跳转语句,可以跳转到r em 标记过的标记处继续执行命令名称:I f 如果..则 命令功能:判断表达式命令参数:参数1 条件型,表达式 返 回 值:无 脚本例子:ﻫ(8.x语法) 复制代码 1. 例子1:2. i=03. If i=0 Then4. Msg bo x "条件判断符合被通过!!"5. End I f6. //通过判断表达式的取值,来执行后面的动作或控制7.8. 例子2:9. i=110. If i=0 Th en11. Ms gbox "条件判断符合被通过!!"12. Else If i=1 The n13. M sgbox "否则条件判断符合被通过!!"14. E lse15. Msgbox "否则!!"16. End If17. //通过判断表达式的取值,来执行后面的动作或控制脚本例子:ﻫ(7.x 语法) 复制代码 1. i=02. If i=03. M sgb ox "条件判断符合被通过!!"4. EndIf5. //通过判断表达式的取值,来执行后面的动作或控I fC olor 颜色判断命令功能:判断屏幕某点的颜色命令参数:参数1 整数型,屏幕X坐标参数2整数型,屏幕Y坐标ﻫ参数3字符串型,颜色16进制值参数4 整数型,判断条件返回值: 无脚本例子:ﻫ(8.x语法)复制代码1.例子1:2.//判断条件(0:等于 1:不等于 2:近似等于)3.IfColor 860,27,"e1b072",0 Then4. Msgbox "颜色等于"5.Else6. Msgbox "颜色不等于"7.End If8.//判断坐标点(860,27)的颜色是否等于e1b0729.10.11.例子2:12.a=1:b=113.IfColor 650,118,"78F0E8",2 Then14.MessageBox "a"15.ElseIf b=a Then16. MessageBox "b"17.Endif脚本例子:(7.x语法)复制代码1.//判断条件(0:等于 1:不等于2:近似等于)2.IfColor 860,27,e1b072,03. Msgbox "颜色等于"4.Else5.Msgbox "颜色不等于"6.EndIf7.//判断坐标点(860,27)的颜色是否等于e1b072命令名称: Rem 标记/注释命令功能:标记命令可当注释命令参数:参数1 字符串型,文字返回值: 无脚本例子:(8.x语法) 复制代码1.//不支持数字开头的和符号作为标记名2.//标记命令.即可当注释,也可以为Goto跳转指令作标记3.Rem脚本开始脚本例子: (7.x语法) 复制代码1.//标记命令.即可当注释,也可以为Goto跳转指令作标记2.Rem脚本开始命令名称: RestartScript重新启动脚本运行命令功能:重新启动脚本运行命令参数:无返回值:无脚本例子:ﻫ(8.x 语法) 复制代码1.For i=0 to 22.Delay 10003.Call Plugin.Msg.ShowScrTXT(0, 0, 1024, 768, "屏幕内容填写" & i, "0000FF")4.Next5.RestartScript //重新启动脚本运行脚本例子: (7.x语法) 复制代码1.无命令名称: Select情况条件选择命令功能: 根据情况选择条件判断命令参数: 参数1条件型,情况返回值:无脚本例子: (8.x语法) 复制代码1.//不支持判断语句如:Case a>0erVar 变量=0 "输入(0~9)数字"3.//<>---------------------------------------------以下是选择条件结结构判断4.Select Case变量5.Case06. Msgbox "你输入的数字为:0"7.Case 18. Msgbox "你输入的数字为:1"9.Case 210. Msgbox "你输入的数字为:2"11.Case 312. Msgbox "你输入的数字为:3"13.Case 414. Msgbox "你输入的数字为:4"15.Case 516. Msgbox "你输入的数字为:5"17.Case 618. Msgbox "你输入的数字为:6"19.Case 720. Msgbox "你输入的数字为:7"21.Case 822. Msgbox "你输入的数字为:8"23.Case 924. Msgbox "你输入的数字为:9"25.CaseElse26. Msgbox "你输入的数字不正确,请输入(0~9)数字!"27.End Select脚本例子:(7.x语法) 复制代码1.无命令名称: Sub 子程序命令功能: 定义一个过程命令参数:参数1 字符串型,过程名返回值:无脚本例子:ﻫ(8.x语法) 复制代码1.//支持Exit Sub命令退出子程序过程2.Call子程序()3.EndScript4.Sub子程序()5. Msgbox "我是子程序,被你调用了"6.End Sub7.//定义一个过程,可以在脚本中调用这个过程脚本例子: ﻫ(7.x语复制代码1.Gosub子程序法) 2.EndScript3.Sub子程序4. Msgbox "我是子程序,被你调用了"5.Return子程序6.//定义一个过程,可以在脚本中调用这个过程命令名称: While 如果..则循环命令功能:条件循环命令参数:参数1 条件型,循环条件返回值: 无脚本例子:ﻫ(8.x语法) 复制代码1.i=02.While i=03. Msgbox"我停不下来啦!!快住手"4.Wend5.//当循环条件成立的时候,反复执行循环体脚本例子: (7.x语法)复制代码1.i=02.While i=03. Msgbox"我停不下来啦!!快住手"4.EndWhile5.//当循环条件成立的时候,反复执行循环体四、颜色/图像命令命令名称: FindCenterColor中心找色命令功能:在屏幕区域从中心开始查找指定的颜色命令参数: 参数1 整数型,屏幕左上角x坐标ﻫ参数2整数型,屏幕左上角y坐标ﻫ参数3 整数型,屏幕右下角x坐标参数4 整数型,屏幕右下角y坐标参数5字符串型,16进制颜色值参数6 整数型,返回x坐标参数7整数型,返回y坐标返回值:无脚本例子:ﻫ(8.x 语法) 复制代码1.//FindCenterColor left,top,right,bottom,c,x,y2.//在区域内从中心到外围找颜色为c的点,把坐标保存在变量x和y中3.//left,top,right,bottom都是整数或者整数型变量,说明了区域的左,上,右,下界限4.//颜色是类似于"0000FF"的字符串,如果不取变量,别忘了加双引号5.//如果没有找到这个颜色,则x和y的值都被置为-16.FindCenterColor 0,0,800,600,"0000FF",x,y7.If x>0 and y>0Then8. MoveTo x,y9.EndIf10.//在区域(0,0,800,600)中找红色("0000FF")的点,如果找到,则把鼠标移动到这个点脚本例子: (7.x语法) 复制代码1.//VBSCall FindCenterColor(left,top,right,bottom,c,x,y)2.//在区域内从中心到外围找颜色为c的点,把坐标保存在变量x和y中3.//left,top,right,bottom都是整数或者整数型变量,说明了区域的左,上,右,下界限4.//颜色是类似于"0000FF"的字符串,如果不取变量,别忘了加双引号5.//如果没有找到这个颜色,则x和y的值都被置为-16.VBSCall FindCenterColor(0,0,800,600,"0000FF",x,y)7.If x>0 and y>08. MoveTo x,y9.EndIf10.//在区域(0,0,800,600)中找红色("0000FF")的点,如果找到,则把鼠标移动到这个点命令名称: FindColor 找色命令功能:在屏幕区域从左到右、从上到下的查找指定的颜色命令参数:参数1整数型,屏幕左上角x坐标ﻫ参数2 整数型,屏幕左上角y坐标ﻫ参数3 整数型,屏幕右下角x坐标ﻫ参数4 整数型,屏幕右下角y坐标ﻫ参数5 字符串型,16进制颜色值参数6 整数型,返回x坐标ﻫ参数7 整数型,返回y坐标返回值:无脚本例子:ﻫ(8.x语法) 复制代码1.//FindColor left,top,right,bottom,c,x,y2.//在区域内从左到右,从上到下找颜色为c的点,把坐标保存在变量x和y中3.//left,top,right,bottom都是整数或者整数型变量,说明了区域的左,上,右,下界限4.//颜色是类似于"0000FF"的字符串,如果不取变量,别忘了加双引号5.//如果没有找到这个颜色,则x和y的值都被置为-16.FindColor 0,0,800,600,"0000FF",x,y7.If x>0 and y>0 Then8. MoveTo x,y9.EndIf10.//在区域(0,0,800,600)中找红色("0000FF")的点,如果找到,则把鼠标移动到这个点脚本例子: ﻫ(7.x语法) 复制代码1.//VBSCall FindColor(left,top,right,bottom,c,x,y)2.//在区域内从左到右,从上到下找颜色为c的点,把坐标保存在变量x和y中3.//left,top,right,bottom都是整数或者整数型变量,说明了区域的左,上,右,下界限4.//颜色是类似于"0000FF"的字符串,如果不取变量,别忘了加双引号5.//如果没有找到这个颜色,则x和y的值都被置为-16.VBSCall FindColor(0,0,800,600,"0000FF",x,y)7.If x>0 and y>08. MoveTo x,y9.EndIf10.//在区域(0,0,800,600)中找红色("0000FF")的点,如果找到,则把鼠标移动到这个点命令名称:FindColorEx模糊找色命令功能:在屏幕区域模糊查找指定的颜色命令参数: 参数1整数型,屏幕左上角x坐标参数2整数型,屏幕左上角y坐标参数3 整数型,屏幕右下角x坐标参数4 整数型,屏幕右下角y坐标参数5字符串型,16进制颜色值参数6 整数型,查找方式ﻫ参数7整数型,相似度ﻫ参数8整数型,返回x坐标ﻫ参数9整数型,返回y坐标返回值:无脚本例子:ﻫ(8.x 语法) 复制代码1.//FindColorEx left,top,right,bottom,c,type,similar,x,y2.//在区域内找颜色为c的点,把坐标保存在变量x和y中3.//left,top,right,bottom都是整数或者整数型变量,说明了区域的左,上,右,下界限4.//颜色是类似于"0000FF"的字符串,如果不取变量,别忘了加双引号5.//type表示查找方式。
怎么开发脚本?用2014按键精灵学习制作游戏自动打怪脚本
首先,使用插件—窗口命令里的查找句柄命令,得到游戏的句柄。
再使用GetClientRect 命令,可以得到游戏窗口客户端的信息
接着,使用VBS函数里的split函数,可以把客户端的起始坐标信息分离出来。
使用类型转换函数,把字符串转换为数值。
再把值赋予UX,UY。
这是我们获取游戏画面起始点坐标的常用方法。
接下来开始写打怪操作,先是按下TAB键选中临近怪物。
选中怪物后,画面正上方会出现
怪物的血条,这个作为我们判断依据。
先把游戏窗口起始点定义为起点坐标。
获取血条上一个点的信息。
一般选取血条右边的点,避免达到半血的怪物,添加到点1
找到颜色判断命令,选择刚才点1的信息,插入。
由于刚才获取的坐标是相对于窗口起始点的坐标,所以这里的坐标值还要加上窗口本身的坐标,也就是X轴加上UX.Y轴加上UY
如果这个颜色判断成立,则键盘按下技能的快捷键数字1,如果不成立,则调回到选怪操作前,重新选择。
按键精灵的周边产品商业小精灵也强势出击,其具体的操作资料,可百度按键精灵论坛查询:。
学习怎么用按键精灵制作游戏辅助——脚本源代码干货分享一、用按键精灵确定人物朝向(以剑灵自动寻路为例)的代码在剑灵右上角的小地图里找色/找图,箭头坐标存储在(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// 基数归位(排完一轮之后左边的数<基数<右边的数那么基数就到了排序中它该在的位置。
学习怎么制作游戏辅助,按键后台插件命令为什么会失效?学习怎么制作游戏辅助,按键后台插件命令为什么会失效?来源:按键学院【按键精灵】按键后台命令就是无效!抓狂啊,暴躁啊,忍不住泪牛满面啊~是否有同学遇到这样的情况呢?有吧?肯定有。
是什么原因呢?原因一、游戏窗口句柄没有获取到1. 游戏加壳,无法获取窗口句柄。
你要绑定的游戏它加了壳,所以无法获取窗口句柄,无法绑定窗口。
无法向窗口发送后台命令。
(加壳的全称是可执行程序资源压缩,是保护文件的常用手段.它起到了加密隐藏的保护作用。
让你无法抓到窗口句柄。
)这种情况比较复杂,有很多脱壳的工具,但是并不是你试用了一款脱壳软件它就一定适用于你要绑定的游戏,你可能要尝试很多种。
2. 游戏hook了GetParent函数接口hook技术可以将自身的代码“融入”被hook住的程序的进程中,成为目标进程的一个部分。
通过hook“接触”到需要修改的api函数入口点,改变它的地址指向新的自定义的函数。
GetParent函数是用于获得一个指定子窗口的父窗口句柄,如果游戏对它进行了hook,我们就无法获取想要获取的游戏窗口句柄。
3. 电脑上运行了其他的挂机软件电脑上运行了其他的挂机软件,导致了要操作的游戏窗口受到了干扰冲突。
关掉其他的挂机软件,重启游戏再绑定。
导致了要操作的游戏窗口受到了干扰冲突。
关掉其他的挂机软件,重启游戏再绑定。
原因二、游戏采用的绘图方式差异(图色信息获取与识别方向)目前较为热门的几种绘图分别是:GDI、OpenGL 、DirectX。
它们的功能就是处理图形图像(我们把范围缩小一点,就拿游戏窗口的图色做例子),GDI 是通过操作系统支配最后达成游戏窗口图色的显示,而OpenGL 、DirectX 它们两个是由显卡操作达成游戏窗口图色显示的。
按键精灵无法对基于显卡的OpenGL 、DirectX直接操作:我们的按键后台命令是基于操作系统的,所以无法直接对基于显卡的OpenGL 、DirectX 进行操作。
第1课:零编程学会补红蓝脚本的制作补红蓝脚本的制作我们应该知道,按键精灵拥有一只眼睛,一双手,眼睛可以帮我们查看屏幕上的颜色,而手可以帮我们不断的点击键盘鼠标。
相信多数的朋友对于这双手的操控已经灵活自如了,而要编写出功能强大的脚本,没有眼睛可不行。
本教程以此出发,教会读者使用这双眼睛,更好的控制机器人的手臂。
本章用到的按键精灵基础命令:1、 IfColor 100,10,112233,0EndIf复制代码IfColor做为按键精灵最重要的颜色判断语句(眼睛),有着良好的易用性与理解性。
语句详细解释:ifColor - 如果颜色100 - 屏幕X象素10 - 屏幕Y象素112233 - 16位进制的颜色(以两位为一种颜色分别代表蓝、红、黄)0 - 相等(1为不相等。
2为模糊匹配)解释:如果在坐标100,10的颜色为112233则执行。
后面的EndIf做为IfColor的配对。
使用方法:控制命令->抓点坐标/颜色->在面图上点左键,加入到坐标点->退出抓点->选好坐标颜色后->插入2、 //注释复制代码解释:“//”为按键精灵的注释在“//”后面所跟写的任何文字都将被按键忽略。
3、 Rem sGoto s复制代码解释:“Rem s”可以理解为在改位置做一个标记s。
而“Goto s”则是无条件跳到此标记执行。
这里补一下程序运行概念:每行代码都有行号,脚本解释器要一行一行代码的执行下去,知道执行最后一行代码或碰到EndScript语句(该语句在后面会有讲解),没有任何可执行了,程序就退出。
4、 Delay 100复制代码解释:暂停100毫秒(1000毫秒等于 1秒)看完了概念,我们来实际编写一个游戏的补红补蓝脚本,验证我们是否已经学会了该课的内容。
首先打开按键精灵,并进入游戏,用PrintScr(一般在F12右边第一个)键截取游戏图象。
然后切换到按键精灵程序。
按ifcolor的使用方法来抓取我们的血条颜色坐标。
怎么开发脚本?按键精灵2014简单快速解决脚本问题
按键精灵在2014年推出的新版本,在视觉界面上的突破备受关注,资料显示,主界面及其他界面的设计和功能优化,都具有业内前瞻性的优势。
界面的功能多样化,新增的界面有针对性的响应用户编辑脚本的需求,做到将新增功能一一对号入座,显示按键精灵强大的脚本制作经验和功用。
在用户选择一个单词时,所有一样的单词显示高亮,不难看出这一举措可以快捷编辑所需脚本,也能辅助脚本的校验。
还比如新版按键精灵哈新增脚本缩进后背景显示纵向虚线功能,在编辑界面上的起到规范脚本的作用。
这里列举其新增的界面功能。
一、新增快速引导功能,体验第一次写脚本和打开最近修改的脚本新增云脚本存储功能。
二、新增脚本新建向导功能新增,脚本列表中显示脚本文件路径、大小和修改日期。
三、新增按键抓抓和网页按键精灵快速打开功能。
四、新增脚本列表中显示脚本文件路径、大小和修改日期。
按键精灵的周边产品商业小精灵也强势出击,其具体的操作资料,可百度按键精灵论坛查询:。
脚本制作教程按键精灵加速游戏标准化管理处编码[BBX968T-XBB8968-NNJ668-MM9N]脚本制作教程:按键精灵加速游戏来源:按键学院【按键精灵】植物大战僵尸这款游戏,想必大家都不陌生讲述的是一场植物与僵尸之间刻骨铭心的撕逼大战是一款老少皆宜和善可爱的游戏……此处省略一万字……但是,问题来了等僵尸的过程也慢得太销魂了吧?画面一点动感刺激感都木有,还怎么玩~和小编一样急性子的小伙伴们,一定忍受不住节奏如此缓慢的游戏,怎么办呢?凉拌炒鸡蛋!自己动手丰衣足食,咱们写个脚本让它快起来~脚本界面效果图今天的脚本例子是用按键精灵仿写一个《变速精灵》,是咱们的大姐大工程师01制作的。
界面十分骚气~~『1』下拉列表框用于显示当前电脑上运行的程序的窗口标题『2』刷新按钮用于重新获取当前电脑上运行的程序的窗口标题『3』"滑块"用于调整速度,往左是减速,往右是加速。
(大尺度调整)『4』快和慢这两个蓝色的按钮,也是用于调整速度的,与滑块的区别在于:滑块可以一次性拉动很大的范围,而按钮是精确调整的,每一次点击增/减一个单位的速度。
『5』恢复"按钮",用于将速度归零。
变速命令变速命令是官方新插件里的SysEx系统插件增强版下的命令:Speed注意:速度的倍数,范围:-256~256,保留小数点后3位,可以实现、倍速度。
获取窗口句柄当我们点击刷新按钮的时候,则获取当前运行中的所有程序的窗口句柄,并且将窗口的标题名添加到下拉列表框中。
我们用FindEx查找窗口句柄命令遍历获取桌面下的第一级子窗口句柄(桌面句柄:0)但是,我们看到,这些窗口中有许多窗口是我们看不见的,甚至都不知道它是做什么用的。
那我们就没有必要获取它了,只要获取到可见的程序窗口句柄即可。
在遍历获取窗口句柄的过程中,加一个判断,利用GetWindowState 获取窗口状态命令,判断当前窗口的状态,是否为可见的,如果是可见的窗口,则记录下该窗口的窗口句柄和窗口标题。
学习脚本制作:按键精灵解决游戏辅助卡死
来源:按键学院【按键精灵】盆友写了个押镖脚本,刚开顺顺当当的,运行一会儿后没了反应,不操作也不停止脚本。
“为什么突然不灵了呢?”小编最喜欢灵异事件,于是火急火燎的去看。
为什么突然不灵了?
盆友玩的是: XXXX某游戏
押镖规则:
1、可以选择坐在镖车上、步行、或者骑马。
2、步行或者骑马,人物在前面走,镖车会跟随人物。
3、如果人物与镖车距离过远了,镖车则停止跟随,停留在原地。
●如果人物坐在镖车上,镖车行走的速度比蜗牛还慢,所以盆友选择了骑马的方式。
●骑马的速度是快过镖车的,很容易造成镖车和人物距离远,镖车不跟随的情况。
所以盆友这样写:骑马骑一段时间,停下来等待,循环找图,找到镖车图标之后,继续前进。
●兴许是马儿跑得欢了,等停下来等待的时候,与镖车的距离早已超过了镖车会自动跟随的距离。
●找不到镖车的图,就一直循环一直循环~看上去就像脚本卡住了一样
由此可见,死循环完全可以终结一个脚本。
死循环的例子还有其它
例如:
在游戏里点击npc交任务的时候,正常的流程是这样的:
1、循环找交任务按钮,找到交任务的按钮则点击,找不到则继续找,
2、循环找接新任务的按钮,找到则点击,找不到则继续找。
但是会出现这样的情况,有的任务提交限等级,没有30级不能提交。
这个时候我们点击完交任务的按钮,npc对话框上会提示没满等级任务不能交,但是npc 交任务的对话框依然还在。
接新任务的按钮被对话框遮挡,无法找到,则进入死循环。
怎样才能解决死循环呢?
方法1:
既然循环会死- -,那就干脆不用循环。
//以点击npc弹出对话框点击对话框里的接新任务为例。
1、点击npc对话
2、算准点击npc之后,对话框延时多长时间弹出来。
3、用延时命令,延时之后再进行找图。
LeftClick 1//点击npc
Delay 3000 //延时三秒等待npc对话框出现
FindPic 0,0,1024,768,"c:\接新任务按钮.bmp",0.9,intX,intY
If intX>0 and intY>0 Then
// 执行操作
End If
评分:★
评语:要使用此法,前提是使用者的网络延迟情况要比脚本内设定的延时小。
网络太渣超过脚本设定延时则无法正常使用。
如果脚本作者考虑到网络延迟因素,尽可能加大脚本里的延时,脚本的效率就会变得很低。
方法2:
循环里加入计数,设置循环次数,1次2次10次,按照需求设置。
如果次数到了,则退出循环。
//以查找npc对话框中的接新任务按钮为例
1、使用变量i来记录次数。
2、找图。
没找到图则i=i+1
3、当i=10,则退出循环。
Do循环例子:
Dim i
i = 0
Do
FindPic 0,0,1024,768,"c:\接新任务按钮.bmp",0.9,intX,intY
If intX>0 and intY>0 Then
// 执行操作
Exit Do
End If
i = i + 1
If i = 10 Then
Exit Do
End If
For循环例子:
For i = 1 To 10
FindPic 0,0,1024,768,"c:\接新任务按钮.bmp",0.9,intX,intY
If intX>0 and intY>0 Then
// 执行操作
Exit For
End If
Next
评分:★★
评语:百分百解决死循环问题。
方法3:
循环里加入计数和计时,设置循环次数,每次循环延时多长时间。
如果次数到了,则退出循环。
//以查找npc对话框中的接新任务按钮为例
1、使用变量i来记录次数。
2、找图。
没找到图则i=i+1
3、加延时
4、当i=10,则退出循环。
Do循环例子:
Dim i
i = 0
Do
FindPic 0,0,1024,768,"c:\接新任务按钮.bmp",0.9,intX,intY
If intX>0 and intY>0 Then
// 执行操作
Exit Do
i = i + 1
If i = 10 Then
Exit Do
End If
Delay 1000
Loop
For循环例子:
For i = 1 To 10
FindPic 0,0,1024,768,"c:\接新任务按钮.bmp",0.9,intX,intY
If intX>0 and intY>0 Then
// 执行操作
Exit For
End If
Delay 1000
Next
评分:★★★
评语:百分百解决死循环问题,并且相较于循环加计数的,多加了一个计时,我们以时间去限制循环,而不单单是次数。
例如:我们希望这个循环,1分钟内执行不了则退出循环。
我们可以设置循环60次,每次循环延时1秒钟,或者循环10次,每次循环延时6秒。
逃离死循环之后,后续该怎么处理呢?
押镖:第一个押镖的例子中,我们加入计数计时判断,判断次数达到限制次数之后,我们要怎么处理呢?肯定不是直接结束循环什么也不干。
后续处理:如果限定循环次数内未找到镖车的图标。
则人物往回移动一点,继续找镖车图标。
限定往回走的次数,达到次数之后,弹出提示脚本遇到错误的信息或者停止脚本。
Npc对话框接新任务:
后续处理:如果限定循环次数内未找到接新任务按钮的图标。
则判断当前窗口内是否有交任务的按钮,有则说明是任务没有交成功,点击关闭npc对话框。