按键精灵脚本开发教程:随机数写法

合集下载

生成随机数的方法

生成随机数的方法

生成随机数的方法
生成随机数的方法有多种,其中常见的方法包括:
1. 使用随机数发生器函数:大多数编程语言提供了随机数发生器函数,可以通过调用这些函数来生成随机数。

例如,在Python中可以使用random模块的randint()函数来生成指定范围内的随机整数。

2. 使用时间戳:可以使用当前时间的毫秒数作为随机数的种子,然后通过一定的算法生成一个随机数。

例如,在Python中可以使用time模块的time()函数获取当前时间的时间戳。

3. 使用硬件设备:某些硬件设备具有随机性质,可以通过读取这些设备的输入数据来生成随机数。

例如,通过读取麦克风的噪声或者键盘的输入来获取随机数。

4. 使用加密算法:某些加密算法具有随机性质,可以利用这些算法生成随机数。

例如,在Java中可以使用SecureRandom类来生成随机数。

需要注意的是,生成的随机数是伪随机数,完全随机数是不存在的。

js中生成随机数的方法

js中生成随机数的方法

js中生成随机数的方法
【原创版】
目录
1.生成随机数的需求
2.JavaScript 中生成随机数的方法
2.1 Math.random()
2.2 Math.random() * (max - min + 1) + min
2.3 递归法
2.4 使用第三方库
正文
在 JavaScript 开发过程中,我们常常需要生成一个随机数。

随机数可以应用于很多场景,例如模拟抽奖、生成验证码等。

那么,在 JavaScript 中有哪些方法可以生成随机数呢?
首先,我们来介绍一个最常用的方法:使用 Math.random() 函数。

这个函数会返回一个 0 到 1 之间的随机数。

如果需要生成一个介于
min 和 max 之间的随机数,可以通过以下公式计算:random =
Math.random() * (max - min + 1) + min。

另外,我们还可以使用递归法来生成随机数。

递归法的基本思路是:当需要生成的随机数范围较大时,可以先生成一个较小的随机数,然后再通过一定的算法生成一个较大的随机数。

例如,可以先生成一个 0 到 100 之间的随机数,然后根据这个随机数的值决定生成的随机数是哪个三位数。

当然,我们还可以使用第三方库来生成随机数。

一些常用的库,如lodash 和 math.js,都提供了丰富的随机数生成方法。

使用这些库可以
让我们更轻松地生成各种类型的随机数。

总之,JavaScript 中生成随机数的方法有很多。

随机数生成器公式

随机数生成器公式

随机数生成器公式随机数生成器公式,这玩意儿听起来是不是有点神秘又有点高大上?其实啊,它在我们的生活和学习中还挺常见的。

先来说说啥是随机数。

随机数啊,就像是老天爷闭着眼睛随便扔出来的数字,没有啥规律可言。

比如说抽奖的时候,电脑随机抽出的中奖号码,那就是随机数。

那随机数生成器公式是咋回事呢?简单来说,就是通过一些数学的方法和规则,让计算机或者其他工具能够“制造”出看起来像是随机出现的数字。

咱们就拿一个简单的例子来说吧。

假设我们要在 1 到 100 之间生成随机数,有一种常见的方法是用编程语言里的随机函数。

就像在Python 里,可以用“random.randint(1, 100)”这个命令,每次运行,它都会给出一个 1 到 100 之间的随机数。

我记得有一次,我们班上搞活动,要通过随机数来决定谁先上台表演节目。

我就用电脑上的随机数生成器来操作,同学们那叫一个紧张又兴奋,眼睛都紧紧盯着屏幕,等着看谁是那个幸运儿。

当第一个随机数出来的时候,被选中的同学先是一愣,然后满脸通红地走上台,大家都哈哈大笑。

再深入一点说,随机数生成器公式可不只是这么简单。

有些更复杂的公式,是为了让生成的随机数更符合真正的随机特性。

比如说,要避免出现连续出现相同数字的情况,或者要保证每个数字出现的概率都差不多。

还有啊,随机数生成器在科学研究里也大有用处。

比如说做模拟实验的时候,需要用随机数来模拟各种不确定的因素。

像研究天气变化、金融市场的波动,都得靠随机数生成器来帮忙。

在游戏开发中,随机数生成器也是不可或缺的。

想象一下,要是游戏里的怪物出现、宝藏掉落都是固定的,那多没意思啊!有了随机数,每次玩游戏都有新的惊喜和挑战。

不过,随机数生成器也不是完美无缺的。

有时候,由于算法的限制,可能会出现一些不太随机的情况。

比如说,在某些情况下,可能会出现一小段数字看起来有规律的现象。

总之,随机数生成器公式虽然看起来有点复杂,但它真的给我们的生活和各种领域带来了很多有趣和有用的东西。

按键精灵脚本开发教程:随机数写法

按键精灵脚本开发教程:随机数写法

按键精灵脚本开发教程:随机数写法来源:按键学院【按键精灵】小编今天要分享三种随机数不重复的方法 ~快来围观~常规方法将随机到的数字放到数组里,然后每次随机产生的数字都和数组里已有的数字进行比较,如果有重复的则重新生成。

代码:(生成10个范围在10以内的随机数)Dim TmpDat(10)For i = 0 To 9RandomizeTmpRnd = Int(rnd * 10)For j = 0 To i - 1If TmpDat(j)=TmpRnd Theni = i - 1 : TmpBol = TRUEEnd IfNextIf TmpBol Then TmpBol = False Else TmpDat(i) = TmpRnd : TracePrint TmpRndNext分析:1、Dim TmpDat(10) //例如,需要产生10个不重复的数字,则定义数组,数组元素个数为102、For i = 0 To 9//由于数组的最小下标是从0开始的,所以循环从0开始到9,循环10次3、Randomize //随机函数初始化4、TmpRnd = Int(rnd * 10) //我们生成0-10范围内的数字,便于查看效果5、For j = 0 To i - 1 //再做一次循环,将当前生成的随机数与前面生成的随机数一一进行比较。

例如:i=5,说明之前已经执行过5次,数组TmpDat里已经有了5个元素,它们的下标从0-4 。

当我们想要查看当前随机到的数字有没有重复,就需要和前面的产生的随机数进行比较。

所以从0循环到i-1 ( i 自身就不需要和自身比了,所以这里需要减1,排除自身)。

6、If TmpDat(j)=TmpRnd Then//如果生成的随机数在数组里已经存在i = i - 1 : TmpBol = TRUE//则i的值减去1,并且做一个标记,tmpbol设置为true End If7、If TmpBol Then TmpBol = False Else TmpDat(i) = TmpRnd : TracePrint TmpRnd //如果TmpBol 是真的,说明随机数字重复了,不做赋值判断,将tmpbol的赋值假。

按键精灵源码

按键精灵源码

按键精灵源码//做这东西主要是为了新人学习之用希望对新人们有一些帮助//声明一些下面要用到的变量(其实不声明也可以不过为了养成//编程的好习惯还是希望大家声明一下)Dim XY_qi,Xq,Yq,n,m,Shu,Fu,A,X,Y//下面这部分是用来设置各种参数用户定义变量 XY_qi=800/400 输入数字起点坐标格式如:10/10 用户定义变量 Hen=5 输入横向特征点个数用户定义变量 n=1 输入横向递进值用户定义变量 Zong=10 输入纵向特征点个数用户定义变量 m=2 输入纵向递进值用户定义变量Ms=2 显示方式设置:1为弹出窗口模式2为粘帖模式用户定义变量 Color1=FFFFFF 设置字体颜色或者背景颜色//初始化数据部分//把Color1转化为字符串类型Color1=Str(Color1)//........................转换成字符类型//取得"/"在字符串的地几个A=InStr(XY_qi,"/")//.........................搜索字符串中指定字符的位置//取得"/"左边的数据Xq=Left(XY_qi,A-1)//........................返回指定数目的从字符串的左边算起的字符//取得"/"右边的数据Yq=Right(XY_qi,Len(XY_qi)-A)//.........从字符串右边返回指定数目的字符//给Shu,X,Y 赋值取得字符串长度Shu=""X=Xq:Y=Yq//纵向特征点个数循环 Zong 遍//给X赋值X=Xq//横向特征点个数循环 Hen 遍//利用GetPixelColor函数开始找颜色调用外部VBScript子程序 Color2=得到指定点的颜色(X,Y) //找到的颜色值和自己设置的颜色值做比较如果表达式 (Color2<>Color1) 为真,则//如果2个颜色不一样则给Fu赋值"1"Fu="1"否则//否则给Fu赋值为"0"Fu="0"条件结束//没循环1次X的值增大nX=X+n//每循环1次Shu的值连接一个FuShu=Shu&Fu循环结束//每循环一次Y的值增大mY=Y+m循环结束//如果模式选择1在显示数字特征码如果表达式 (Ms=1) 为真,则调用外部VBScript子程序 Color2=得到指定点的颜色(X,Y) //如果模式选择2则把数据写入剪切板否则如果(Ms=2)为真,则调用子程序 Nt调用子程序 Ts条件结束脚本停止运行//写入剪切板子程序子程序 NtShuZi=ShuSet objIE = CreateObject("InternetExplorer.Application")objIE.Navigate("about:blank")objIE.document.parentwindow.clipboardData.SetData "Text", ShuZiobjIE.Quit子程序结束,回到调用处//弹出对话框子程序子程序 Tsset Obj = createobject("WScript.Shell")Hua="数字特征码为:"&vbcr&Shu&vbcr&"请打开记事本粘帖"调用外部VBScript子程序 Color2=得到指定点的颜色(X,Y)子程序结束,回到调用处//打开画图程序,并最大化,调整默认大小再运行脚本就OK。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

按键精灵脚本编写命令大全及示例

按键精灵脚本编写命令大全及示例

按键精灵学习教程一、键盘命令(2~5页)二、鼠标命令(5~13页)三、控制命令(13~22页)四、颜色/图像命令(22~28页)五、其他命令(28~35页)五、网游脚本实例(35~最后)一、键盘命令命令名称:GetLastKey检测上次按键命令功能:检测上次按键命令参数:参数1整数型,可选:变量名返回值:无脚本例子:(8.x语法)?? 复制代码1.//脚本运行到这一行不会暂停,调用的时候立即返回,得到调用之前最后一次按下的按键码保存在变量Key里。

??2.Key=GetLastKey()???3.If?Key?=?13?Then???4.????Msgbox?"你上次按下了回车键"??5.End?If??脚本例子:(7.x语法)?? 复制代码1.//脚本运行到这一行不会暂停,调用的时候立即返回,得到调用之前最后一次按下的按键码保存在变量Key里。

??2.GetLastKey?Key??3.If?Key?=?13??4.????Msgbox?"你上次按下了回车键"??5.EndIf??命令名称:KeyDown按住命令功能:键盘按住命令参数:参数1整数型,键盘虚拟码(8.X支持按键字符)参数2整数型,次数返回值:无脚本例子:(8.x语法)?? 复制代码1.//KeyDown、KeyDownS、KeyDownH??2.//KeyDownS:?超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的键盘都可以使用??3.//KeyDownH:?硬件模拟方式,仅支持PS(圆口)的键盘?点击查看使用硬件模拟方式的注意事项??4.KeyDown?65,1??5.//65是A键的按键码,上面的语句表示按住A键1次??6.KeyDown?"A",1??7.//上面的支持按键字符,语句表示按住A键1次??脚本例子:(7.x语法)?? 复制代码1.//KeyDown、KeyDownS、KeyDownH??2.//KeyDownS:?超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的键盘都可以使用??3.//KeyDownH:?硬件模拟方式,仅支持PS(圆口)的键盘?点击查看使用硬件模拟方式的注意事项??4.KeyDown?65,1??5.//65是A键的按键码,上面的语句表示按住A键1次?命令名称:KeyPress按键命令功能:键盘按键命令参数:参数1整数型,键盘虚拟码(8.X支持按键字符)参数2整数型,次数返回值:无脚本例子:(8.x语法)?? 复制代码1.//KeyPress、KeyPressS、KeyPressH??2.//KeyPressS:?超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的键盘都可以使用??3.//KeyPressH:?硬件模拟方式,仅支持PS(圆口)的键盘?点击查看使用硬件模拟方式的注意事项??4.KeyPress?65,1??5.//65是A键的按键码,上面的语句表示按A键1次??6.KeyPress?"A",1??7.//上面的支持按键字符,语句表示按A键1次??脚本例子:(7.x语法)?? 复制代码1.//KeyPress、KeyPressS、KeyPressH??2.//KeyPressS:?超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的键盘都可以使用??3.//KeyPressH:?硬件模拟方式,仅支持PS(圆口)的键盘?点击查看使用硬件模拟方式的注意事项??4.KeyPress?65,1??5.//65是A键的按键码,上面的语句表示按A键1次??命令名称:KeyUp弹起命令功能:键盘弹起命令参数:参数1整数型,键盘虚拟码(8.X支持按键字符)参数2整数型,次数返回值:无脚本例子:(8.x语法)?? 复制代码1.//KeyUp、KeyUpS、KeyUpH??2.//KeyUpS:?超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的键盘都可以使用??3.//KeyUpH:?硬件模拟方式,仅支持PS(圆口)的键盘?点击查看使用硬件模拟方式的注意事项??4.KeyUp?65,1??5.//65是A键的按键码,上面的语句表示松开A键1次??6.KeyUp?"A",1??7.//上面的支持按键字符,语句表示松开A键1次??脚本例子:(7.x语法)?? 复制代码1.//KeyUp、KeyUpS、KeyUpH??2.//KeyUpS:?超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的键盘都可以使用??3.//KeyUpH:?硬件模拟方式,仅支持PS(圆口)的键盘?点击查看使用硬件模拟方式的注意事项??4.KeyUp?65,1??5.//65是A键的按键码,上面的语句表示松开A键1次??命令名称:WaitKey等待按任意键命令功能:等待按任意键命令参数:参数1整数型,可选:变量名返回值:无脚本例子:(8.x语法)?? 复制代码1.Key=WaitKey()???2.//脚本运行到这一行会暂停,当用户按下键盘后继续执行,并且把用户的按键码保存在变量Key里??3.If?Key?=?13?Then???4.????MessageBox?"恭喜你按下了回车键"??5.End?If??脚本例子:(7.x语法)?? 复制代码1.WaitKey?Key??2.//脚本运行到这一行会暂停,当用户按下键盘后继续执行,并且把用户的按键码保存在变量Key里??3.If?Key?=?13??4.????Msgbox?"恭喜你按下了回车键"??5.EndIf??二、鼠标命令命令名称:GetCursorPos得到鼠标位置坐标命令功能:得到当前鼠标所在的位置坐标命令参数:参数1整数型,返回x坐标参数2整数型,返回y坐标返回值:无脚本例子:(8.x语法)?? 复制代码1.GetCursorPos?mx,my??2.//把当前鼠标位置的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.??6.//下面是我们访问网页超链接时候的手型鼠标形状??7.??8.shape=GetCursorShape(0)??9.If?shape?=?shape1?Then???10.????MessageBox?"当前鼠标形状是普通的WINDOWS鼠标"??11.ElseIf?shape?=?shape2?Then???12.????MessageBox?"当前鼠标形状是手型鼠标"??13.Else???14.????MessageBox?"不认识当前鼠标形状!"??15.End?If??脚本例子:(7.x语法)?? 复制代码1.//参数:?0?是6.83之前的版本默认的参数??2.//参数:?1?可用于一些在参数0下无法区分鼠标形状代码的情况??3.//下面是我们普通的WINDOWS鼠标形状特征??4.//不同电脑上鼠标形状特征也许不同,请使用"抓点抓色"功能抓取正确的鼠标形状特征??5.??6.//下面是我们访问网页超链接时候的手型鼠标形状??7.??8.VBSCall?Shape=GetCursorShape(0)??9.If?shape?=?shape1??10.????MessageBox?当前鼠标形状是普通的WINDOWS鼠标??11.ElseIf?shape?=?shape2??12.????MessageBox?当前鼠标形状是手型鼠标??13.Else???14.????MessageBox?不认识当前鼠标形状!??15.EndIf???命令名称:GetLastClick检测上次按过的鼠标键命令功能:检测上一次按下的鼠标代码命令参数:参数1整数型,可选:变量名返回值:无脚本例子:(8.x语法)?? 复制代码1.Mouse=GetLastClick()???2.If?Mouse?=32770?Or?Mouse?=32769?Then???3.????Msgbox?"你按下了鼠标左键"??4.End?If??脚本例子:(7.x语法)?? 复制代码1.GetLastClick?Mouse??2.If?Mouse?=32770?Or?Mouse?=32769???3.????Msgbox?"你按下了鼠标左键"??4.EndIf??命令名称:LeftClick左键单击命令功能:模拟点击鼠标左键命令参数:参数1整数型,次数返回值:无脚本例子:(8.x语法)?? 复制代码1.//LeftClick、LeftClickS、LeftClickH??2.//LeftClickS:?超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用??3.//LeftClickH:?硬件模拟方式,仅支持PS(圆口)的鼠标?点击查看使用硬件模拟方式的注意事项??4.LeftClick?5??5.//在当前鼠标的位置单击鼠标左键5次??脚本例子:(7.x语法)?? 复制代码1.//LeftClick、LeftClickS、LeftClickH??2.//LeftClickS:?超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用??3.//LeftClickH:?硬件模拟方式,仅支持PS(圆口)的鼠标?点击查看使用硬件模拟方式的注意事项??4.LeftClick?5??5.//在当前鼠标的位置单击鼠标左键5次??命令名称:LeftDoubleClick左键双击命令功能:模拟双击鼠标左键命令参数:参数1整数型,次数返回值:无脚本例子:(8.x语法)?? 复制代码1.//LeftDoubleClick、LeftDoubleClickS、LeftDoubleClickH]??2.//LeftDoubleClickS:?超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用??3.//LeftDoubleClickH:?硬件模拟方式,仅支持PS(圆口)的鼠标?点击查看使用硬件模拟方式的注意事项??4.LeftDoubleClick?5??5.//在当前鼠标的位置双击鼠标左键5次??脚本例子:(7.x语法)?? 复制代码1.//LeftDoubleClick、LeftDoubleClickS、LeftDoubleClickH]??2.//LeftDoubleClickS:?超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用??3.//LeftDoubleClickH:?硬件模拟方式,仅支持PS(圆口)的鼠标?点击查看使用硬件模拟方式的注意事项??4.LeftDoubleClick?5??5.//在当前鼠标的位置双击鼠标左键5次??命令名称:LockMouse锁定鼠标位置命令功能:锁定鼠标位置,用户将不能通过移动鼠标而改变鼠标位置,而脚本仍可以改变鼠标位置命令参数:无返回值:无脚本例子:(8.x语法)?? 复制代码1.//在脚本开始的时候使用这个命令,可以有效防止用户误触鼠标引起脚本执行出错??2.LockMouse??3.Do??4.????Delay?1000??5.Loop??脚本例子:(7.x语法)?? 复制代码1.//在脚本开始的时候使用这个命令,可以有效防止用户误触鼠标引起脚本执行出错??2.LockMouse??3.While?True??4.????Delay?1000??5.EndWhile??命令名称:MiddleClick中键单击命令功能:模拟点击鼠标中键命令参数:参数1整数型,次数返回值:无脚本例子:(8.x语法)?? 复制代码1.//MiddleClick、MiddleClickS、MiddleClickH??2.//MiddleClickS:?超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用??3.//MiddleClickH:?硬件模拟方式,仅支持PS(圆口)的鼠标?点击查看使用硬件模拟方式的注意事项??4.MiddleClick?5??5.//在当前鼠标的位置单击鼠标中键5次??脚本例子:(7.x语法)?? 复制代码1.//MiddleClick、MiddleClickS、MiddleClickH??2.//MiddleClickS:?超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用??3.//MiddleClickH:?硬件模拟方式,仅支持PS(圆口)的鼠标?点击查看使用硬件模拟方式的注意事项??4.MiddleClick?5??5.//在当前鼠标的位置单击鼠标中键5次??命令名称:MouseWheel鼠标滚轮命令功能:滚动鼠标滚轮命令参数:参数1整数型,滚动量返回值:无脚本例子:(8.x语法)?? 复制代码1.//如果滚动量为正,向上滚动;否则向下滚动.??2.//仅支持Windows?2000以上的操作系统.??3.MouseWheel?1??4.//把鼠标滚轮向上滚动1格??脚本例子:(7.x语法)?? 复制代码1.//如果滚动量为正,向上滚动;否则向下滚动.??2.//仅支持Windows?2000以上的操作系统.??3.MouseWheel?1??4.//把鼠标滚轮向上滚动1格??命令名称:MoveR鼠标相对移动命令功能:鼠标相对移动到命令参数:参数1整数型,X距离参数2整数型,Y距离返回值:无脚本例子:(8.x语法)?? 复制代码1.//MoveR、MoveRS、MoveRH??2.//MoveRS:?超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用??3.//MoveRH:?硬件模拟方式,仅支持PS(圆口)的鼠标?点击查看使用硬件模拟方式的注意事项??4.//当前鼠标在(100,100)点,使用下面语句??5.MoveR?200,300??6.//之后,鼠标就被移到了(100+200,100+300)处,也就是坐标(300,400)处??7.//提示:使用硬件模拟方式不能碰键盘鼠标,否则会导致出错??脚本例子:复制代码(7.x语法)?? 1.//MoveR、MoveRS、MoveRH??2.//MoveRS:?超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用??3.//MoveRH:?硬件模拟方式,仅支持PS(圆口)的鼠标?点击查看使用硬件模拟方式的注意事项??4.//当前鼠标在(100,100)点,使用下面语句??5.MoveR?200,300??6.//之后,鼠标就被移到了(100+200,100+300)处,也就是坐标(300,400)处??7.//提示:使用硬件模拟方式不能碰键盘鼠标,否则会导致出错??命令名称:MoveTo鼠标移动命令功能:移动鼠标到命令参数:参数1整数型,X坐标参数2整数型,Y坐标返回值:无脚本例子:(8.x语法)?? 复制代码1.//MoveTo、MoveToS、MoveToH??2.//MoveToS:?超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用??3.//MoveToH:?硬件模拟方式,仅支持PS(圆口)的鼠标??4.MoveTo?100,200??5.//把鼠标移动到(100,200)这个点上??6.intX=50??7.intY=150??8.MoveTo?intX,intY??9.//把鼠标移动到(intX,intY)这个点上,需要5.50以上版本支持.??脚本例子:(7.x语法)?? 复制代码1.//MoveTo、MoveToS、MoveToH??2.//MoveToS:?超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用??3.//MoveToH:?硬件模拟方式,仅支持PS(圆口)的鼠标??4.MoveTo?100,200??5.//把鼠标移动到(100,200)这个点上??6.intX=50??7.intY=150??8.MoveTo?intX,intY??9.//把鼠标移动到(intX,intY)这个点上,需要5.50以上版本支持.??命令名称:RestoreMousePos恢复上次保存的鼠标位置命令功能:保存当前鼠标位置命令参数:无返回值:无脚本例子:复制代码(8.x语法)?? 1.SaveMousePos??2.//保存当前鼠标位置??3.Delay?100??4.MoveTo?500,20??5.Delay?100??6.RestoreMousePos??7.//将鼠标移动到上一次保存的鼠标位置??8.//保存/恢复鼠标位置常用于制作网络游戏练功脚本,脚本开始时保存鼠标位置,脚本结束时恢复鼠标位置,??9.//这样脚本执行后鼠标的位置就不会变化??脚本例子:(7.x语法)?? 复制代码1.SaveMousePos??2.//保存当前鼠标位置??3.Delay?100??4.MoveTo?500,20??5.Delay?100??6.RestoreMousePos??7.//将鼠标移动到上一次保存的鼠标位置??8.//保存/恢复鼠标位置常用于制作网络游戏练功脚本,脚本开始时保存鼠标位置,脚本结束时恢复鼠标位置,??9.这样脚本执行后鼠标的位置就不会变化??命令名称:RightClick右键单击命令功能:模拟点击鼠标右键命令参数:参数1整数型,次数返回值:无脚本例子:(8.x语法)?? 复制代码1.//RightClick、RightClickS、RightClickH??2.//RightClickS:?超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用??3.//RightClickH:?硬件模拟方式,仅支持PS(圆口)的鼠标?点击查看使用硬件模拟方式的注意事项??4.RightClick?5??5.//在当前鼠标的位置单击鼠标右键5次??脚本例子:(7.x语法)?? 复制代码1.//RightClick、RightClickS、RightClickH??2.//RightClickS:?超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用??3.//RightClickH:?硬件模拟方式,仅支持PS(圆口)的鼠标?点击查看使用硬件模拟方式的注意事项??4.RightClick?5??5.//在当前鼠标的位置单击鼠标右键5次??命令名称:SaveMousePos保存当前鼠标所在位置命令功能:保存当前鼠标位置命令参数:无返回值:无脚本例子:(8.x语法)?? 复制代码1.SaveMousePos??2.//保存当前鼠标位置??3.Delay?100??4.MoveTo?500,20??5.Delay?100??6.RestoreMousePos??7.//将鼠标移动到上一次保存的鼠标位置??8.//保存/恢复鼠标位置常用于制作网络游戏练功脚本,脚本开始时保存鼠标位置,脚本结束时恢复鼠标位置,??9.//这样脚本执行后鼠标的位置就不会变化??脚本例子:(7.x语法)?? 复制代码1.SaveMousePos??2.//保存当前鼠标位置??3.Delay?100??4.MoveTo?500,20??5.Delay?100??6.RestoreMousePos??7.//将鼠标移动到上一次保存的鼠标位置??8.//保存/恢复鼠标位置常用于制作网络游戏练功脚本,脚本开始时保存鼠标位置,脚本结束时恢复鼠标位置,??9.这样脚本执行后鼠标的位置就不会变化??命令名称:UnlockMouse解除锁定鼠标位置命令功能:解除LockMouse命令对鼠标位置的锁定命令参数:无返回值:无脚本例子:(8.x语法)?? 复制代码1.??脚本例子:(7.x语法)?? 复制代码1.//如果用户使用了LockMouse命令而没有使用UnlockMouse命令,按键精灵会在脚本结束时自动解除锁定??2.UnlockMouse??命令名称:WaitClick按任意鼠标键继续命令功能:脚本执行到这一句暂停,按下任意鼠标键之后继续命令参数:参数1整数型,可选:变量名返回值:无脚本例子:(8.x语法)?? 复制代码st_click=WaitClick()???2.MessageBox?"您按下了"?&?last_click??脚本例子:(7.x语法)?? 复制代码1.WaitClick?last_click??2.MessageBox?"您按下了"?&?last_click??三、控制命令命令名称:Call调用过程命令功能:调用过程命令参数:参数1字符串型,过程名返回值:无脚本例子:(8.x语法)?? 复制代码1.Call?子程序("我是子程序,被你调用了")??2.EndScript??3.//支持中文名变量??4.Sub?子程序(啊)??5.????Msgbox?啊??6.End?Sub??7.//定义一个过程,可以在脚本中调用这个过程??脚本例子:(7.x语法)??复制代码命令名称:Do循环命令功能:条件循环命令参数:参数1条件型,循环条件返回值:无脚本例子:(8.x语法)?? 复制代码1.例子1:??2.//支持Exit?Do?命令退出循环??3.i=0??4.Do?While?i=0??5.????Msgbox?"我停不下来啦!!快住手"??6.Loop??7.//当循环条件成立的时候,反复执行循环体??8.例子2:??9.i=0??10.Do?Until?i=0??11.????Msgbox?"为什么没有循环到我呢?"??12.Loop??13.Msgbox?"循环结束"??14.//当循环条件成立的时候,离开循环体??15.例子3:??16.i=0??17.Do?Until?i=1??18.????Msgbox?"我停不下来啦!!快住手"??19.Loop??20.//当循环条件不成立的时候,反复执行循环体??21.例子4:??22.n=0??23.Do?While?true??24.????Msgbox?"我将循环10次停下来!!"??25.????If?n>=10?Then??26.????????//当循环条件成立的时候,离开循环体??27.????????Exit?do??28.????End?if??29.????n=n+1??30.Loop??31.Msgbox?n?&?"次"??32.例子5:??33.i?=?0??34.Do???35.???MessageBox?"ok"??36.Loop?While?i?<>?0??37.//条件放后面,前面的循环内容可以执行一次!??脚本例子:(7.x语法)?? 复制代码1.无??命令名称:For循环命令功能:循环一定次数命令参数:参数1整数型,循环次数返回值:无脚本例子:(8.x语法)?? 复制代码1.例子1:??2.//支持Exit?For?命令退出循环??3.For?i=0?To?9??4.????Delay?100??5.Next??6.//循环10次??7.例子2:??8.//支持Exit?For?命令退出循环??9.For?10??10.????Delay?100??11.Next??12.//循环10次??13.例子3:??14.//支持Exit?For?命令退出循环??15.For?i=0?to?19?step?2??16.????Delay?100??17.Next??18.//循环10次??19.例子4:??20.//支持Exit?For?命令退出循环??21.For?i=0?to?19?step?2??22.????Delay?100??23.????If?i>9?Then??24.????????Exit?For???25.????End?If??26.Next??27.//循环5次??脚本例子:(7.x语法)?? 复制代码1.For?10??2.????Delay?100??3.EndFor??4.//循环10次??命令名称:Function函数命令功能:函数命令参数:多类型,多参数返回值:多类型脚本例子:(8.x语法)?? 复制代码1.//支持Exit?Function?命令退出函数过程??2.Msgbox?函数过程("我是函数,被你调用了")??3.EndScript??4.Function?函数过程(a)??5.????函数过程=a??6.End?Function??7.//定义一个函数过程,可以在脚本中调用这个函数??脚本例子:(7.x语法)?? 复制代码1.无??命令名称:Gosub调用子程序命令功能:调用过程命令参数:参数1字符串型,过程名返回值:无脚本例子:(8.x语法)?? 复制代码1.//可带参数传递??2.Call?子程序("我是子程序,被你调用了")??3.EndScript??4.Sub?子程序(a)??5.????Msgbox?a??6.End?Sub???7.//定义一个过程,可以在脚本中调用这个过程??脚本例子:(7.x语法)?? 复制代码1.Gosub?子程序??2.EndScript??3.Sub?子程序??4.????Msgbox?"我是子程序,被你调用了"??5.Return?子程序??6.//定义一个过程,可以在脚本中调用这个过程??命令名称:Goto跳转到标记命令功能:跳转到Rem标记处命令参数:参数1字符串型,标号返回值:无脚本例子:(8.x语法)?? 复制代码1.Goto?标记??2.Delay?100??3.Rem?标记??4.Msgbox?"你直接跳到这里了!!,上面的延迟没有被执行!!"??5.//跳转语句,可以跳转到rem标记过的标记处继续执行??脚本例子:(7.x语法)?? 复制代码1.Goto?标记??2.Delay?100??3.Rem?标记??4.Msgbox?"你直接跳到这里了!!,上面的延迟没有被执行!!"??5.//跳转语句,可以跳转到rem标记过的标记处继续执行??命令名称:If如果..则命令功能:判断表达式命令参数:参数1条件型,表达式返回值:无脚本例子:(8.x语法)?? 复制代码1.例子1:??2.i=0??3.If?i=0?Then??4.????Msgbox?"条件判断符合被通过!!"??5.End?If??6.//通过判断表达式的取值,来执行后面的动作或控制??7.例子2:??8.i=1??9.If?i=0?Then??10.????Msgbox?"条件判断符合被通过!!"??11.ElseIf?i=1?Then??12.????Msgbox?"否则条件判断符合被通过!!"??13.Else??14.????Msgbox?"否则!!"??15.End?If??16.//通过判断表达式的取值,来执行后面的动作或控制??脚本例子:(7.x语法)?? 复制代码1.i=0??2.If?i=0??3.????Msgbox?"条件判断符合被通过!!"??4.EndIf??5.//通过判断表达式的取值,来执行后面的动作或控命令名称:IfColor颜色判断命令功能:判断屏幕某点的颜色命令参数:参数1整数型,屏幕X坐标参数2整数型,屏幕Y坐标参数3字符串型,颜色16进制值参数4整数型,判断条件返回值:无脚本例子:(8.x语法)?? 复制代码1.例子1:??2.//判断条件(0:等于?1:不等于?2:近似等于)??3.IfColor?860,27,"e1b072",0?Then??4.????Msgbox?"颜色等于"??5.Else???6.????Msgbox?"颜色不等于"??7.End?If??8.//判断坐标点(860,27)的颜色是否等于e1b072??9.例子2:??10.a=1:b=1??11.IfColor?650,118,"78F0E8",2?Then??12.????MessageBox?"a"??13.ElseIf?b=a?Then??14.????MessageBox?"b"??15.End?if??脚本例子:(7.x语法)?? 复制代码1.//判断条件(0:等于?1:不等于?2:近似等于)??2.IfColor?860,27,e1b072,0??3.????Msgbox?"颜色等于"??4.Else???5.????Msgbox?"颜色不等于"??6.EndIf??7.//判断坐标点(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?2???2.????Delay?1000??3.????Call?Plugin.Msg.ShowScrTXT(0,?0,?1024,?768,?"屏幕内容填写"?&?i,?"0000FF")???4.Next???5.RestartScript?//重新启动脚本运行??(7.x语法)??1.无??命令名称:Select情况条件选择命令功能:根据情况选择条件判断命令参数:参数1条件型,情况返回值:无脚本例子:(8.x语法)?? 复制代码1.//不支持判断语句?如:Case?a>0??erVar?变量=0?"输入(0~9)数字"??3.//<>---------------------------------------------以下是选择条件结结构判断??4.Select?Case?变量??5.Case?0??6.????Msgbox?"你输入的数字为:0"???7.Case?1??8.????Msgbox?"你输入的数字为:1"???9.Case?2??10.????Msgbox?"你输入的数字为:2"???11.Case?3??12.????Msgbox?"你输入的数字为:3"???13.Case?4??14.????Msgbox?"你输入的数字为:4"???15.Case?5??16.????Msgbox?"你输入的数字为:5"???17.Case?6??18.????Msgbox?"你输入的数字为:6"???19.Case?7??20.????Msgbox?"你输入的数字为:7"???21.Case?8??22.????Msgbox?"你输入的数字为:8"???23.Case?9??24.????Msgbox?"你输入的数字为:9"???25.Case?Else??26.????Msgbox?"你输入的数字不正确,请输入(0~9)数字!"??27.End?Select??脚本例子:(7.x语法)?? 复制代码1.无??命令名称:Sub子程序命令功能:定义一个过程命令参数:参数1字符串型,过程名返回值:无(8.x 语法)?? 1. //支持Exit?Sub?命令退出子程序过程??2. Call ?子程序()??3. EndScript??4. Sub ?子程序()??5. ????Msgbox?"我是子程序,被你调用了"??6. End ?Sub ??7. //定义一个过程,可以在脚本中调用这个过程??脚本例子:(7.x 语法)?? 复制代码 1. Gosub ?子程序??2. EndScript??3. Sub ?子程序??4. ????Msgbox?"我是子程序,被你调用了"??5. Return ?子程序??6. //定义一个过程,可以在脚本中调用这个过程??命令名称:While 如果..则循环 命令功能:条件循环 命令参数:参数1条件型,循环条件 返回值:无 脚本例子:(8.x 语法)?? 复制代码 1. i=0??2. While ?i=0??3. ????Msgbox?"我停不下来啦!!快住手"??4. Wend??5. //当循环条件成立的时候,反复执行循环体??脚本例子:(7.x 语法)?? 复制代码 1. i=0??2. While ?i=0??3. ????Msgbox?"我停不下来啦!!快住手"??4. EndWhile??5. //当循环条件成立的时候,反复执行循环体??四、颜色/图像命令参数3整数型,屏幕右下角x坐标参数4整数型,屏幕右下角y坐标参数5字符串型,16进制颜色值参数6整数型,返回x坐标参数7整数型,返回y坐标返回值:无脚本例子:(8.x语法)?? 复制代码1.//FindCenterColor?left,top,right,bottom,c,x,y??2.//在区域内从中心到外围找颜色为c的点,把坐标保存在变量x和y中??3.//left,top,right,bottom都是整数或者整数型变量,说明了区域的左,上,右,下界限??4.//颜色是类似于"0000FF"的字符串,如果不取变量,别忘了加双引号??5.//如果没有找到这个颜色,则x和y的值都被置为-1??6.FindCenterColor?0,0,800,600,"0000FF",x,y??7.If?x>0?and?y>0?Then??8.????MoveTo?x,y??9.End?If???10.//在区域(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的值都被置为-1??6.VBSCall?FindCenterColor(0,0,800,600,"0000FF",x,y)??7.If?x>0?and?y>0??8.????MoveTo?x,y??9.EndIf???10.//在区域(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,y??2.//在区域内从左到右,从上到下找颜色为c的点,把坐标保存在变量x和y中??3.//left,top,right,bottom都是整数或者整数型变量,说明了区域的左,上,右,下界限??4.//颜色是类似于"0000FF"的字符串,如果不取变量,别忘了加双引号??5.//如果没有找到这个颜色,则x和y的值都被置为-1??6.FindColor?0,0,800,600,"0000FF",x,y??7.If?x>0?and?y>0?Then??8.????MoveTo?x,y??9.End?If???10.//在区域(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的值都被置为-1??6.VBSCall?FindColor(0,0,800,600,"0000FF",x,y)??7.If?x>0?and?y>0??8.????MoveTo?x,y??9.EndIf???10.//在区域(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,y??2.//在区域内找颜色为c的点,把坐标保存在变量x和y中??3.//left,top,right,bottom都是整数或者整数型变量,说明了区域的左,上,右,下界限??4.//颜色是类似于"0000FF"的字符串,如果不取变量,别忘了加双引号??5.//type表示查找方式。

按键精灵脚本编写命令大全及示例

按键精灵脚本编写命令大全及示例

按键精灵学习教程一、键盘命令(2~5页)二、鼠标命令(5~13页)三、控制命令(13~22页)四、颜色/图像命令(22~28页)五、其他命令(28~35页)五、网游脚本实例(35~最后)一、键盘命令命令名称:GetLastKey 检测上次按键命令功能:检测上次按键命令参数:参数1 整数型,可选:变量名返回值:无脚本例子:(8.x语法) 复制代码1.//脚本运行到这一行不会暂停,调用的时候立即返回,得到调用之前最后一次按下的按键码保存在变量Key里。

2.Key=GetLastKey()3.If Key = 13 Then4. Msgbox "你上次按下了回车键"5.End If脚本例子:(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. KeyDown 65,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次返回值:无脚本例子:(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.End If脚本例子:(7.x语法) 复制代码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命令名称:GetLastClick 检测上次按过的鼠标键命令功能:检测上一次按下的鼠标代码命令参数:参数1 整数型,可选:变量名返回值:无脚本例子:(8.x语法) 复制代码1.Mouse=GetLastClick()2.If Mouse =32770 Or Mouse =32769 Then3. Msgbox "你按下了鼠标左键"4.End If脚本例子:(7.x语法) 复制代码1.GetLastClick Mouse2.If Mouse =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.While True4.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.//仅支持Windows 2000以上的操作系统.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.Delay 1004.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.Delay 1004.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命令功能:脚本执行到这一句暂停,按下任意鼠标键之后继续命令参数:参数1 整数型,可选:变量名返回值:无脚本例子:(8.x语法) 复制代码st_click=WaitClick()2.MessageBox "您按下了" & last_click脚本例子:(7.x语法) 复制代码1.WaitClick last_click2.MessageBox "您按下了" & last_click三、控制命令命令名称:Call 调用过程命令功能:调用过程命令参数:参数1 字符串型,过程名返回值:无脚本例子:(8.x语法) 复制代码1.Call子程序("我是子程序,被你调用了")2.EndScript3.//支持中文名变量4.Sub子程序(啊)5. Msgbox 啊6.End Sub7.//定义一个过程,可以在脚本中调用这个过程脚本例子:(7.x语法)复制代码命令名称:Do 循环命令功能:条件循环命令参数:参数1 条件型,循环条件返回值:无3.i=04.Do While i=05. Msgbox "我停不下来啦!!快住手"6.Loop7.//当循环条件成立的时候,反复执行循环体8.9.10.例子2:11.i=012.Do Until i=013. Msgbox "为什么没有循环到我呢?"14.Loop15.Msgbox "循环结束"16.//当循环条件成立的时候,离开循环体17.18.19.例子3:20.i=021.Do Until i=122. Msgbox "我停不下来啦!!快住手"23.Loop24.//当循环条件不成立的时候,反复执行循环体25.26.27.例子4:28.n=029.Do While true30. Msgbox "我将循环10次停下来!!"31.If n>=10 Then32. //当循环条件成立的时候,离开循环体33.Exit do34.End if35. n=n+136.Loop37.Msgbox n & "次"38.39.40.例子5:41.i = 042.Do43. MessageBox "ok"44.Loop While i <> 045.//条件放后面,前面的循环内容可以执行一次!脚本例子:复制代码命令名称:For 循环命令功能:循环一定次数命令参数:参数1 整数型,循环次数返回值:无脚本例子:(8.x语法) 复制代码1.例子1:2.//支持Exit For 命令退出循环3.For i=0 To 94.Delay 1005.Next6.//循环10次7.8.例子2:9.//支持Exit For 命令退出循环10.For 1011.Delay 10012.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.Delay 1003.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.//定义一个过程,可以在脚本中调用这个过程命令功能:跳转到Rem标记处命令参数:参数1 字符串型,标号返回值:无脚本例子:(8.x语法) 复制代码1.Goto标记2.Delay 1003.Rem标记4.Msgbox "你直接跳到这里了!!,上面的延迟没有被执行!!"5.//跳转语句,可以跳转到rem标记过的标记处继续执行脚本例子:(7.x语法) 复制代码1.Goto标记2.Delay 1003.Rem标记4.Msgbox "你直接跳到这里了!!,上面的延迟没有被执行!!"5.//跳转语句,可以跳转到rem标记过的标记处继续执行命令名称:If 如果..则命令功能:判断表达式命令参数:参数1 条件型,表达式返回值:无脚本例子:(8.x语法) 复制代码1.例子1:2.i=03.If i=0 Then4. Msgbox "条件判断符合被通过!!"5.End If6.//通过判断表达式的取值,来执行后面的动作或控制7.8.例子2:9.i=110.If i=0 Then11. Msgbox "条件判断符合被通过!!"12.ElseIf i=1 Then13. Msgbox "否则条件判断符合被通过!!"14.Else15. Msgbox "否则!!"16.End If脚本例子:(7.x语法) 复制代码1.i=02.If i=03. Msgbox "条件判断符合被通过!!"4.EndIf5.//通过判断表达式的取值,来执行后面的动作或控命令名称:IfColor 颜色判断命令功能:判断屏幕某点的颜色命令参数:参数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.End if脚本例子:(7.x语法) 复制代码1.//判断条件(0:等于 1:不等于 2:近似等于)2.IfColor 860,27,e1b072,03. Msgbox "颜色等于"4.Else5. Msgbox "颜色不等于"6.EndIf命令名称: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 条件型,情况返回值:无脚本例子:复制代码3.//<>---------------------------------------------以下是选择条件结结构判断4.Select Case变量5.Case 06. 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.Case Else26. 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. Whilei=0 3. Msgbox "我停不下来啦!!快住手"4. Wend5. //当循环条件成立的时候,反复执行循环体脚本例子:(7.x 语法) 复制代码 1. i=02. While i=03. Msgbox "我停不下来啦!!快住手"4. EndWhile5. //当循环条件成立的时候,反复执行循环体四、颜色/图像命令参数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. Ifx>0 and y>0 Then8. MoveTo x,y9. End If10. //在区域(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")的点,如果找到,则把鼠标移动到这个点(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.End If10.//在区域(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表示查找方式。

学习脚本制作: Rnd随机函数

学习脚本制作: Rnd随机函数

学习脚本制作:Rnd随机函数来源:按键学院【按键精灵】有同学问:Int((upperbound - lowerbound + 1) * Rnd + lowerbound) 这个产生随机整数的公式里,为什么要加1呢?为什么呢?我们一起来解剖下这个公式~【公式】Int((upperbound - lowerbound + 1) * Rnd + lowerbound)【中文翻译】取整((上界-下界+1)*Rnd+下界)【功能】取下界到上届范围内的随机整数,随机到的整数范围包含下界和上界例如:Int((100-1+1) * Rnd +1),取1 -100 之间的包含1和100的随机整数如果不按照公式写,我们直接写int(Rnd(100))那么,随机到的整数,范围是0-99,永远随机不到100这个值。

按照顺序解剖这个公式,首先是int函数。

Int函数【功能】小数部分舍去,返回数字的整数部分。

【例子】 Int(99.8) ' 返回值为99。

Int(99.4) ' 返回值为99。

upperbound 和lowerbound 通过上面的中文翻译,我们已经知道了,它们是随机函数的界限值,upperbound 是大的数,lowerbound 是小的数。

那我们接下去讲讲今天的主角Rnd。

Rnd函数【功能】 Rnd 函数返回一个小于1 但大于或等于0 的值。

【分析】也就是说它返回的是0-0.9999999 (N个9)之间的数,接近1但不等1.知道了Rnd函数的随机值范围,咱们就可以做进一步分析了~公式运算分析假设我们要获取 1-100之间的随机数。

1是下界(lowerbound),100是上界(upperbound),代入公式: Int((upperbound - lowerbound + 1) * Rnd + lowerbound)第一步:运算(upperbound - lowerbound + 1) ,代入100和1,得到100第二步:100* Rnd,我们知道rnd函数得到的最大值是0.99999无限接近1,我们假设它是最大值0.99999 ,来计算下得到的随机数最大的会是多少。

java随机数生成方法

java随机数生成方法

java随机数生成方法Java是一种非常流行的编程语言,它提供了许多功能强大的工具和函数,用于生成随机数。

随机数在计算机编程中有着广泛的应用,可以用于模拟实验、加密算法、游戏开发等领域。

本文将介绍几种常见的Java随机数生成方法,并给出使用示例。

1. Math.random()方法Math类是Java中提供的一个数学工具类,其中的random()方法可以生成一个0到1之间的随机数。

具体用法如下:```javadouble randomNum = Math.random();System.out.println(randomNum);```上述代码将打印出一个0到1之间的随机数。

需要注意的是,Math.random()生成的随机数是一个double类型的值,范围是[0,1),即包含0,不包含1。

2. Random类Java中的Random类提供了更加灵活和丰富的随机数生成方法。

该类可以用于生成不同类型的随机数,如整数、浮点数等。

下面是一个使用Random类生成随机整数的示例:```javaRandom random = new Random();int randomInt = random.nextInt(100); // 生成0到99之间的随机整数System.out.println(randomInt);```上述代码将生成一个0到99之间的随机整数,并将其打印出来。

3. ThreadLocalRandom类Java 7中引入了ThreadLocalRandom类,它是Random的一个线程安全版本,可以在多线程环境下使用。

下面是一个使用ThreadLocalRandom类生成随机浮点数的示例:```javadouble randomDouble = ThreadLocalRandom.current().nextDouble(0, 1);System.out.println(randomDouble);```上述代码将生成一个0到1之间的随机浮点数,并将其打印出来。

按键精灵脚本开发教程:随机数写法

按键精灵脚本开发教程:随机数写法

按键精灵脚本开发教程:随机数写法来源:按键学院【按键精灵】小编今天要分享三种随机数不重复的方法 ~快来围观~常规方法将随机到的数字放到数组里,然后每次随机产生的数字都和数组里已有的数字进行比较,如果有重复的则重新生成。

代码:(生成10个范围在10以内的随机数)Dim TmpDat(10)For i = 0 To 9RandomizeTmpRnd = Int(rnd * 10)For j = 0 To i - 1If TmpDat(j)=TmpRnd Theni = i - 1 : TmpBol = TRUEEnd IfNextIf TmpBol Then TmpBol = False Else TmpDat(i) = TmpRnd : TracePrint TmpRndNext分析:1、Dim TmpDat(10) //例如,需要产生10个不重复的数字,则定义数组,数组元素个数为102、For i = 0 To 9//由于数组的最小下标是从0开始的,所以循环从0开始到9,循环10次3、Randomize //随机函数初始化4、TmpRnd = Int(rnd * 10) //我们生成0-10范围内的数字,便于查看效果5、For j = 0 To i - 1 //再做一次循环,将当前生成的随机数与前面生成的随机数一一进行比较。

例如:i=5,说明之前已经执行过5次,数组TmpDat里已经有了5个元素,它们的下标从0-4 。

当我们想要查看当前随机到的数字有没有重复,就需要和前面的产生的随机数进行比较。

所以从0循环到i-1 ( i 自身就不需要和自身比了,所以这里需要减1,排除自身)。

6、If TmpDat(j)=TmpRnd Then//如果生成的随机数在数组里已经存在i = i - 1 : TmpBol = TRUE//则i的值减去1,并且做一个标记,tmpbol设置为true End If7、If TmpBol Then TmpBol = False Else TmpDat(i) = TmpRnd : TracePrint TmpRnd //如果TmpBol 是真的,说明随机数字重复了,不做赋值判断,将tmpbol的赋值假。

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

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

学习怎么用按键精灵制作游戏辅助——脚本源代码干货分享一、用按键精灵确定人物朝向(以剑灵自动寻路为例)的代码在剑灵右上角的小地图里找色/找图,箭头坐标存储在(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// 基数归位(排完一轮之后左边的数<基数<右边的数那么基数就到了排序中它该在的位置。

JavaScript随机数生成方法

JavaScript随机数生成方法

JavaScript随机数⽣成⽅法实现随机数是各种编程语⾔都很常见的⼀个编程任务,下⾯介绍⼀下在JavaScript如何实现随机数。

第⼀中⽅法通过重写Math.random⽅法实现,第⼆种⽅法改⾃⼀个C实现,都可以实现编程⽬的。

直接上代码:01<script language="javascript">02var native_random = Math.random;03Math.random = function(min, max, exact) {04 if(arguments.length === 0)05 {06 return native_random();07 }08 else if(arguments.length === 1)09 {10 max = min;11 min = 0;12 }13 var range = min + (native_random()*(max - min));14 return exact === void(0) ? Math.round(range) : range.toFixed(exact);15};16document.write(Math.random());17document.write('<br />');18document.write(Math.random(10));19document.write('<br />');20document.write(Math.random(3,10));21document.write('<br />');22document.write(Math.random(2,10,4));23</script>程序运⾏结果如下:10.2989420900121331273942.2469如何不使⽤Math.random实现随机数呢?下⾯的函数改⾃⼀个C实现:01var random = (function(){02 var high = 1, low = 1 ^ 0x49616E42;03 var shuffle = function(seed){04 high = seed;05 low = seed ^ 0x49616E42;06 }0708 return function(){09 var a = new Date()-010 shuffle(a);11 high = (high << 16) + (high >> 16);12 high += low;13 low += high;14 return high;15 }16})();1718p(random());。

java随机数的用法

java随机数的用法

java随机数的用法1.介绍随机数在计算机领域是非常常见且重要的概念之一。

在Ja va编程语言中,我们可以使用内置的随机数生成器来创建随机数。

本文将介绍J a va中生成随机数的几种常用方法以及它们的用法。

2. ja va.util.Rando m类J a va提供了`ja va.u t il.R an do m`类来生成伪随机数。

下面是随机数生成的基本步骤:1.创建一个`R an do m`类的实例对象。

2.使用实例对象的方法来生成具有不同特性的随机数。

2.1生成随机整数`R an do m`类的`n ext I nt()`方法用于生成随机整数。

以下是一个使用`n ex tI nt()`方法生成随机整数的示例代码:i m po rt ja va.u ti l.R a nd om;p u bl ic cl as sR an dom E xa mp le{p u bl ic st at ic vo idm a in(S tr in g[]a rgs){R a nd om ra nd om=n ewR a nd om();i n tr an do mN um be r=r a nd om.n ex tI nt();S y st em.o ut.p ri ntl n("随机整数为:"+r an do mN um be r);}}2.2生成指定范围的随机整数如果我们需要生成指定范围内的随机整数,可以使用`n ex tI nt(i nt bo und)`方法。

该方法将返回一个大于等于0且小于b o un d的随机整数。

下面是一个示例代码:i m po rt ja va.u ti l.R a nd om;p u bl ic cl as sR an dom E xa mp le{p u bl ic st at ic vo idm a in(S tr in g[]a rgs){R a nd om ra nd om=n ewR a nd om();i n tm in=10;i n tm ax=20;i n tr an do mN um be r=r a nd o m.n ex tI nt(ma x-m in)+mi n;S y st em.o ut.p ri ntl n("随机整数为:"+r an do mN um be r);}}2.3生成随机浮点数`R an do m`类的`n ext D ou bl e()`方法用于生成0.0到1.0之间的随机浮点数。

按键精灵脚本编写方法

按键精灵脚本编写方法

按键精灵学习教程一、键盘命令(2~5页)二、鼠标命令(5~13页)三、控制命令(13~22页)四、颜色/图像命令(22~28页)五、其他命令(28~355页)五、网游脚本实例(35~最后)一、键盘命令命令名称:GetLastKey 检测上次按键命令功能:检测上次按键命令参数:参数1 整数型,可选:变量名返回值:无脚本例子:(8.x语法) 复制代码1.//脚本运行到这一行不会暂停,调用的时候立即返回,得到调用之前最后一次按下的按键码保存在变量Key里。

2.Key=GetLastKey()3.If Key = 13 Then4. Msgbox "你上次按下了回车键"5.End If脚本例子:(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. KeyDown 65,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次返回值:无脚本例子:(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.End If脚本例子:(7.x语法) 复制代码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命令名称:GetLastClick 检测上次按过的鼠标键命令功能:检测上一次按下的鼠标代码命令参数:参数1 整数型,可选:变量名返回值:无脚本例子:(8.x语法) 复制代码1.Mouse=GetLastClick()2.If Mouse =32770 Or Mouse =32769 Then3. Msgbox "你按下了鼠标左键"4.End If脚本例子:(7.x语法) 复制代码1.GetLastClick Mouse2.If Mouse =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.While True4.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.//仅支持Windows 2000以上的操作系统.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.Delay 1004.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.Delay 1004.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命令功能:脚本执行到这一句暂停,按下任意鼠标键之后继续命令参数:参数1 整数型,可选:变量名返回值:无脚本例子:(8.x语法) 复制代码st_click=WaitClick()2.MessageBox "您按下了" & last_click脚本例子:(7.x语法) 复制代码1.WaitClick last_click2.MessageBox "您按下了" & last_click三、控制命令命令名称:Call 调用过程命令功能:调用过程命令参数:参数1 字符串型,过程名返回值:无脚本例子:(8.x语法) 复制代码1.Call子程序("我是子程序,被你调用了")2.EndScript3.//支持中文名变量4.Sub子程序(啊)5. Msgbox 啊6.End Sub7.//定义一个过程,可以在脚本中调用这个过程脚本例子:(7.x语法)复制代码命令名称:Do 循环命令功能:条件循环命令参数:参数1 条件型,循环条件返回值:无3.i=04.Do While i=05. Msgbox "我停不下来啦!!快住手"6.Loop7.//当循环条件成立的时候,反复执行循环体8.9.10.例子2:11.i=012.Do Until i=013. Msgbox "为什么没有循环到我呢?"14.Loop15.Msgbox "循环结束"16.//当循环条件成立的时候,离开循环体17.18.19.例子3:20.i=021.Do Until i=122. Msgbox "我停不下来啦!!快住手"23.Loop24.//当循环条件不成立的时候,反复执行循环体25.26.27.例子4:28.n=029.Do While true30. Msgbox "我将循环10次停下来!!"31.If n>=10 Then32. //当循环条件成立的时候,离开循环体33.Exit do34.End if35. n=n+136.Loop37.Msgbox n & "次"38.39.40.例子5:41.i = 042.Do43. MessageBox "ok"44.Loop While i <> 045.//条件放后面,前面的循环内容可以执行一次!脚本例子:复制代码命令名称:For 循环命令功能:循环一定次数命令参数:参数1 整数型,循环次数返回值:无脚本例子:(8.x语法) 复制代码1.例子1:2.//支持Exit For 命令退出循环3.For i=0 To 94.Delay 1005.Next6.//循环10次7.8.例子2:9.//支持Exit For 命令退出循环10.For 1011.Delay 10012.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.Delay 1003.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.//定义一个过程,可以在脚本中调用这个过程命令功能:跳转到Rem标记处命令参数:参数1 字符串型,标号返回值:无脚本例子:(8.x语法) 复制代码1.Goto标记2.Delay 1003.Rem标记4.Msgbox "你直接跳到这里了!!,上面的延迟没有被执行!!"5.//跳转语句,可以跳转到rem标记过的标记处继续执行脚本例子:(7.x语法) 复制代码1.Goto标记2.Delay 1003.Rem标记4.Msgbox "你直接跳到这里了!!,上面的延迟没有被执行!!"5.//跳转语句,可以跳转到rem标记过的标记处继续执行命令名称:If 如果..则命令功能:判断表达式命令参数:参数1 条件型,表达式返回值:无脚本例子:(8.x语法) 复制代码1.例子1:2.i=03.If i=0 Then4. Msgbox "条件判断符合被通过!!"5.End If6.//通过判断表达式的取值,来执行后面的动作或控制7.8.例子2:9.i=110.If i=0 Then11. Msgbox "条件判断符合被通过!!"12.ElseIf i=1 Then13. Msgbox "否则条件判断符合被通过!!"14.Else15. Msgbox "否则!!"16.End If脚本例子:(7.x语法) 复制代码1.i=02.If i=03. Msgbox "条件判断符合被通过!!"4.EndIf5.//通过判断表达式的取值,来执行后面的动作或控命令名称:IfColor 颜色判断命令功能:判断屏幕某点的颜色命令参数:参数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.End if脚本例子:(7.x语法) 复制代码1.//判断条件(0:等于 1:不等于 2:近似等于)2.IfColor 860,27,e1b072,03. Msgbox "颜色等于"4.Else5. Msgbox "颜色不等于"6.EndIf命令名称: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 条件型,情况返回值:无脚本例子:复制代码3.//<>---------------------------------------------以下是选择条件结结构判断4.Select Case变量5.Case 06. 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.Case Else26. 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 的值都被置为-1 6. FindCenterColor 0,0,800,600,"0000FF",x,y7. If x>0 and y>0 Then8. MoveTo x,y9. End If10. //在区域(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")的点,如果找到,则把鼠标移动到这个点(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.End If10.//在区域(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表示查找方式。

按键精灵一些函数的使用

按键精灵一些函数的使用
TracePrint x ‘x=7
复制代码4、返回匹配上的字符串
语法:
Str.Match(s, pattern, start)
s:目标字符
pattern:模式匹配字符
start:匹配的起始位置,可省略,默认为1
返回值:
执行成功:返回匹配上pattern的第一个字符串
执行失败:返回null
示例:Dim s ,x
检查字符串s是否是一个整数。
2、可以使用修饰符来修饰模式增强模式的表达能力,模式修饰符有四个:
+匹配前一字符1次或多次最长匹配
*匹配前一字符0次或多次最长匹配
-匹配前一字符0次或多次最短匹配
?匹配前一字符0次或1次
最长匹配:和最短匹配的区别,实例看看Dim s ,x
s="int x; /* x */ int y; /* y */"
inText=Str.Encrypt("zhou164902127按键精灵","123ABC")
TracePrint inText ‘,?7?<?SnX ?@?#_ C?
outText=Str.Decrypt(inText,"123ABC")
TracePrint outText‘zhou164902127按键精灵
s:目标字符
pattern:模式匹配字符
rep:替换字符
n:替换次数,可省略,若果省略,表示全部替换
返回值:
执行成功:字符串,返回s中匹配上pattern字符串中前n个被替换成rep后的字符串
执行失败:返回null
示例://假如我要想把w字母和d字母之间的其它字符替换成"我"

math.random()用法四位随机数

math.random()用法四位随机数

在许多编程语言中,`Math.random()` 是一个用于生成随机数的函数。

然而,由于`Math.random()` 生成的是0到1之间的随机小数,要得到四位随机数,你需要进行一些额外的处理。

以下是一个在JavaScript中生成四位随机数的例子:
```javascript
var randomNumber = Math.floor(Math.random() * 10000); // 生成0-9999的随机数
console.log(randomNumber);
```
这段代码的工作原理如下:
* `Math.random()` 生成一个0到1之间的随机小数。

* 将这个随机小数乘以10000,结果是一个0到10000之间的随机小数。

* `Math.floor()` 函数将这个随机小数向下取整,结果是一个0到9999之间的整数。

请注意,这个方法生成的是0到9999的随机数,如果你需要的是1到9999的随机数,你可以简单地在结果加1。

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

按键精灵脚本开发教程:随机数写法
来源:按键学院【按键精灵】
小编今天要分享三种随机数不重复的方法 ~快来围观~
常规方法
将随机到的数字放到数组里,然后每次随机产生的数字都和数组里已有的数字进行比较,如果有重复的则重新生成。

代码:(生成10个范围在10以内的随机数)
Dim TmpDat(10)
For i = 0 To 9
Randomize
TmpRnd = Int(rnd * 10)
For j = 0 To i - 1
If TmpDat(j)=TmpRnd Then
i = i - 1 : TmpBol = TRUE
End If
Next
If TmpBol Then TmpBol = False Else TmpDat(i) = TmpRnd : TracePrint TmpRnd
Next
分析:
1、Dim TmpDat(10) //例如,需要产生10个不重复的数字,则定义数组,数组元素个数为10
2、For i = 0 To 9//由于数组的最小下标是从0开始的,所以循环从0开始到9,循环10次
3、Randomize //随机函数初始化
4、TmpRnd = Int(rnd * 10) //我们生成0-10范围内的数字,便于查看效果
5、For j = 0 To i - 1 //再做一次循环,将当前生成的随机数与前面生成的随机数一一进行比较。

例如:i=5,说明之前已经执行过5次,数组TmpDat里已经有了5个元素,它们的下标从0-4 。

当我们想要查看当前随机到的数字有没有重复,就需要和前面的产生的随机数进行比较。

所以从0循环到i-1 ( i 自身就不需要和自身比了,所以这里需要减1,排除自身)。

6、If TmpDat(j)=TmpRnd Then//如果生成的随机数在数组里已经存在
i = i - 1 : TmpBol = TRUE//则i的值减去1,并且做一个标记,tmpbol设置为true End If
7、If TmpBol Then TmpBol = False Else TmpDat(i) = TmpRnd : TracePrint TmpRnd //如果TmpBol 是真的,说明随机数字重复了,不做赋值判断,将tmpbol的赋值假。

如果TmpBol 不是真的,说明随机数字没有重复,将新产生的随机数赋值给数组,并且输出。

输出:
点评:★★
方法是好的,但是效率上有所欠佳。

每次生成一次随机数都需要和已有数据一一比较,比较耗费时间
数组法
前面的常规法,只定义了一个数组用来存放随机数。

而数组法,要定义两个数组。

一个数组用来存放随机数,你需要生成多少个随机数则定义多大范围的数组。

另一个数组是用来判断随机数之前是否产生过,你要生成多大范围的随机数,则定义多大的数组范围。

代码:(生成10个范围在1000内的随机数)
Dim TmpDat(10)
Dim TmpArr(1000)//生成的随机数大小范围在0~1000
For i = 0 To 9
Randomize
TmpRnd = Int(rnd * 1000)
If TmpArr(TmpRnd) Then
i = i - 1 : TmpBol = TRUE
Else
TmpArr(TmpRnd) = True
End If
If TmpBol Then TmpBol = False Else TmpDat(i) = TmpRnd : TracePrint TmpRnd
Next
要点分析:
1、 TmpRnd = Int(rnd * 1000) //生成随机数赋值给TmpRnd
2、 If TmpArr(TmpRnd) Then
//例如,随机到的数字是10, TmpArr(10),因为我们并没有给TmpArr数组里的任何元素赋值过。

TmpArr(10)为空,那么,当它作为判断条件的时候,会被转换为布尔值进行判断, cbool(TmpArr(10))=0,0表示假,所以条件不成立,执行else后面的语句:TmpArr(TmpRnd) = True //将 TmpArr(10) 赋值真,当第二次再随机到数字10的时候,
If 条件成立,条件成立则忽略当前随机到的数字 i-1 重新随机。

点评:★★★
在速度上比常规法快很多。

字符串查找法
字符串查找法:
定义一个数组用来存放产生的不重复随机数。

定义一个字符串变量,用来存放已经生成的随机数,每次随机数产生后都和字符串做比较,如果随机数在字符串里存在,则i-1 重新随机。

代码:(生成10个范围在10以内的随机数)
Dim TmpDat(10)
For i = 0 To 9
Randomize
TmpRnd = Int(rnd * 10)
If InStr(TmpStr, TmpRnd & "|") Then
i = i - 1 : TmpBol = TRUE
Else
TmpStr = TmpStr&TmpRnd & "|"
End If
If TmpBol Then TmpBol = False Else TmpDat(i) = TmpRnd : TracePrint TmpRnd
Next
InStr 函数的语法:
InStr([start, ]string1, string2[, compare])
参数:
分析:
If InStr(TmpStr, TmpRnd & "|") Then
//例如,随机到的数字为10。

第一次执行判断,TmpStr是空的。

InStr(TmpStr, TmpRnd & "|")
在Tmpstr里找不到“10|”,返回值为0,0表示假,则执行else后面的语句:
TmpStr = TmpStr & TmpRnd & "|"
将随机到的数放到TmpStr里。

当第二次再随机到数字10的时候,
If 条件成立,条件成立则忽略当前随机到的数字 i-1 重新随机。

点评:★★★★
在速度上比常规法快很多。

且比数组法好理解。

相关文档
最新文档