按键精灵开发教程:QUI界面不卡死

按键精灵开发教程:QUI界面不卡死
按键精灵开发教程:QUI界面不卡死

按键精灵开发教程:QUI界面不卡死

来源:按键学院【按键精灵】

Qui界面加载之后卡死?点击控件之后卡死?

为什么会出现这种情况?该如何解决?

且听小编细细道来~

原因

QUI界面事件如果添加循环命令,或者延时命令。添加之后,我们再去点击QUI界面,就会出现卡死的现象。

QUI界面事件:

窗口事件以及控件事件统称为界面事件。

界面事件?

按键精灵是怎么知道我们点击了哪个控件,鼠标移动到了界面的哪里了呢?

其实,我们看似平常的一个操作,

例如:移动鼠标到窗口界面上点击输入框。

这样的一个操作,其实是被分解成了几百条消息反馈给按键精灵软件,告诉它鼠标现在在哪里,做了什么,点击了控件,然后控件要响应什么操作等等。

而这些消息,按键精灵软件会逐条处理,处理完这一条才会继续处理下一条。

所以,当它在处理循环事件会延时事件时,没有处理完之前都不处理其它信息。

使用循环命令导致界面卡死的解决方法

1、多线程

界面上有两个控件,输入框1(InputBox1)和按钮1(Button1)

当按下按钮1(Button1)时,启动线程,将延时命令和循环命令放在线程里执行。循环一百次给输入框赋值。

代码:

Event Form1.Button1.Click

BeginThread 循环//启动线程End Event

Sub 循环

For i = 1 To 100

Delay 200

Form1.InputBox1.T ext = "" & i Next

End Sub

2、定时器

定时器的有效设置为否

时间间隔设置为200毫秒(执行一次循环需要的时间)

当按下按钮1(Button1)时,将定时器的有效设置为是(Form1.Timer1.Enabled = True)定时器每隔200毫秒会执行一次Timer 事件

我们在Timer事件中,定义一个变量i,每执行一次Timer时间i的值叠加1,直到i的值等于我们设置循环次数,则将定时器的有效设置为否。

代码:

Event Form1.Button1.Click

Form1.Timer1.Enabled = True

End Event

Event Form1.Timer1.Timer

i = i + 1

If i= 100 then Form1.Timer1.Enabled=False

Form1.InputBox1.T ext = "" & i

End Event

3、API函数

我们已经知道了,界面卡住,是因为在处理循环命令时,产生了其它的消息导致的。

那么我们可以这样做,当在执行循环命令时,界面上的其它所有消息都忽略掉,不反馈给按键精灵软件

要用到四个Api函数:LocalAlloc、PeekMessageA、TranslateMessage、DispatchMessageA、LocalFree

代码:

Declare Function PeekMessageA Lib "user32.dll" Alias "PeekMessageA"(ByVal 消息格式As Any,ByVal 窗口句柄As Long,ByVal 消息最小过滤值As Long,ByVal 消息最大过滤值As Long,ByVal 删除消息As Long) As Long

Declare Function LocalAlloc Lib "kernel32" Alias "LocalAlloc" (ByVal wOemChar As Long,ByVal wOmChar As Long) As Long

Declare Function LocalFree Lib "kernel32" Alias "LocalAlloc" (ByVal hMem As Long) As Long

Declare Function TranslateMessage Lib "user32.dll" Alias "TranslateMessage"(ByVal 消息结构As Any) As Long Declare Function DispatchMessageA Lib "user32.dll" Alias "DispatchMessageA"(ByVal 消息结构As Any) As Long

Event Form1.Button1.Click

For i=1 to 100

Form1.InputBox1.T ext = "" & i

call 处理事件

Next

End Event

Sub 处理事件()

WM=LocalAlloc (0,28) //分配一块存储空间用于存放消息

If PeekMessageA(WM, 0, 0, 0, 1) <> 0 Then //获取当前程序的消息存放在"消息结构"里,然后将消息删除,忽略不处理

TranslateMessage WM //将空消息转换成程序可识别格式(虚拟键消息转换为字符消息)

DispatchMessageA WM //将转完格式的空消息反馈给程序

End If

LocalFree WM //释放存储空间

End Sub

使用延时命令导致界面卡死的解决方法

API函数

当我们的延时命令不是放在多线程里,也不是靠定时器来处理,一定要放在QUI事件中时,该怎么办呢?

我们用上面说到的Api函数忽略消息的方法外加一个API函数:GetTickCount

来模拟一个在QUI界面事件中可执行的延时命令。

函数:

GetTickCount:GetTickCount返回从操作系统启动所经过的毫秒数

步骤:

我们先获取一次操作系统启动经过的毫秒数,放到变量s中

然后循环再次获取操作系统启动经过的毫秒数,如果小于我们设定的延时,就继续忽略消息,如果达到延时数则继续下一条循环。

代码:

Declare Function PeekMessageA Lib "user32.dll" Alias "PeekMessageA"(ByVal 消息格式As Long,ByVal 窗口句柄As Long,ByVal 消息最小过滤值As Long,ByVal 消息最大过滤值As Long,ByVal 删除消息As Long) As Long

Declare Function LocalAlloc Lib "kernel32" Alias "LocalAlloc" (ByVal wOemChar As Long,ByVal wOmChar As Long) As Long

Declare Function LocalFree Lib "kernel32" Alias "LocalAlloc" (ByVal hMem As Long) As Long

Declare Function TranslateMessage Lib "user32.dll" Alias "TranslateMessage"(ByVal 消息结构As Long) As Long Declare Function DispatchMessageA Lib "user32.dll" Alias "DispatchMessageA"(ByVal 消息结构As Long) As Long Declare Function GetTickCount Lib "kernel32" Alias "GetTickCount"() As Long

Event Form1.Button1.Click

For i = 0 To 10

Form1.InputBox1.T ext=""&i

call 超级延时(200)

Next

End Event

Sub 超级延时(毫秒)

Dim s

s = GetTickCount()

Wm=LocalAlloc(0,28)

While (GetTickCount() - s < 毫秒)

If PeekMessageA(Wm, 0, 0, 0, 1) <> 0 Then //得到消息

TranslateMessage Wm

DispatchMessageA Wm

End If

Wend

LocalFree Wm

End Sub

注意:

使用API函数忽略消息有个弊端,那就是当我们忽略消息的过程中,如果我们关闭了窗口,那只是假关闭。

窗口的关闭是操作系统处理响应的,而关闭窗口之后要触发的一些操作,例如销毁进程、释放内存空间等等,都是程序本身在执行。但是程序被关闭时的状态是忽略处理消息的状态,关闭窗口要触发的操作被忽略掉了。

所以看上去窗口被关闭了,实际上窗口还在运行中。

学习游戏脚本制作:按键精灵里的if语句教程

学习游戏脚本制作:按键精灵里的if语句教程 来源:按键学院【按键精灵】万万没有想到……有一天居然会栽在if语句手里。 First—小编的凄惨经历 小编今早写脚本,由于无意间将if语句中的end if错删了,弹出了这样的错误提示: “(错误码0)没有找到合法的符号。” 看到这个提示,小编以为是哪个逗号不小心写成中文逗号,没成想丢了个end if也是出现这样的提示。 好在代码不多,所以错误点容易找到,那……如果,代码多达几百上千条的时候呢?眼泪马上掉出来~ 今天在这里和童鞋们一起来了解下,按键里的夫妻组合,看看这些夫妻被分开之后都会出现什么样的可怕情况: Second—一夫一妻制 If……end if判断语句 If判断语句,有分为两种: 1、 if语句条(条模式) 当判断完之后,要执行的语句只有一条的时候,使用if语句条

例如: If 1 > 0 Then MessageBox"Hello~" // If语句条,不需要添加end if //条模式的时候,if语句还是单身,不是夫妻组合 2、 if语句块(块模式) 当判断完之后,要执行的语句有很多条的时候,使用if语句块 例如: If 1 > 0Then MessageBox"Hello~" MessageBox"Hello~" End If //块模式的时候,if语句是已婚状态,夫妻组合。如果这个时候缺少了end if 就会出现下面的错误提示: 拓展:if语句块中then 可以省略 例如: If 1 >0 MessageBox"Hello~" MessageBox"Hello~"

End If For……next循环语句 例子: For i=1 To 10 //这里的脚本可以循环10次 Next 拓展:如果,循环体里不需要用到循环次数值,例如,需要打开十个记事本,可以这样写: For 10 RunApp "Notepad.exe" Next 当for循环语句缺少next的时候,会出现下面的错误提示: Do……Loop 循环语句 Do……Loop循环语句分为两种情况: 1、前判断 Do While条件 Loop

(完整版)按键精灵默认插件命令大全

目录 插件命令面板 - BKgnd后台控制 (6) KeyPress 按键 (6) KeyDown 按下 (7) KeyUp 弹起 (8) LeftClick 左键单击 (9) LeftDoubleClick 左键双击 (10) LeftDown 左键按下 (11) LeftUp 左键弹起 (12) RightClick 右键单击 (13) RightDown 右键按下 (14) RightUp 右键弹起 (15) MiddleClick 中键单击 (16) SendString 发送字符串 (17) MoveTo 鼠标移动 (18) GetPixelColor 得到指定点颜色 (19) FindColor 区域找色 (20) FindColorEx 模糊找色 (21) FindCenterColor 中心找色 (22) 插件命令面板 - Color颜色 (23) ColorToRGB 颜色转RGB (23) GetRGB 得到RGB分量合并值 (23) ColorToHSL 颜色转HSL (24) CountColor 区域搜索颜色数量 (25) FindMutiColor 区域多点找色 (26) FindShape 区域多点找形状 (27) 插件命令面板 - Console控制台 (27) Open 打开 (28) Close 关闭 (29) ReadLine 读取一行 (29) WriteLine 写入一行 (29)

WaitKey 等待按键 (30) 插件命令面板 - Encrypt加解密 (30) Md5String 字符串MD5加密 (30) Md5File 文件MD5加密 (31) 插件命令面板 - File文件 (31) CloseFile 关闭文件 (31) CopyFile 复制文件 (31) CreateFolder 创建文件夹 (32) DeleteFile 删除文件 (32) DeleteFolder 删除文件夹 (33) ExistFile 判断文件(旧) (33) GetFileLength 得到文件长度 (33) IsFileExit 判断文件 (34) MoveFile 移动文件 (35) OpenFile 打开文件 (35) ReadFile 读取文件 (36) ReadFileEx 读取文件 (36) ReadINI 读取键值 (37) ReadLine 读取一行 (37) ReNameFile 重命名文件 (38) SeekFile 设置文件的当前读写位置 (38) SelectDirectory 弹出选择文件夹对话框 (39) SelectFile 弹出选择文件对话框 (39) SetAttrib 设置文件属性 (40) SetDate 设置文件日期时间 (41) WriteFile 写入文件 (41) WriteFileEx 写入文件 (41) WriteINI 写入键值 (42) WriteLine 写入一行 (42) 插件命令面板 - Media多媒体 (43) Beep 蜂鸣器 (43) Play 播放 (44)

脚本开发教程:按键精灵解决游戏设置

心之所向,所向披靡 脚本开发教程:按键精灵解决游戏设置 “啊~怎么回事?用你的脚本,它就像傻逼一样,一直重复的开启关闭游戏设置界面?" 许多脚本作者会遇到这样的问题。其实只是用户没有设置好游戏分辨率,脚本无法识别下一步,所以重复的开启关闭游戏设置界面。即便是脚本作者很细心的把脚本使用环境都讲解得很仔细。但是总会有人忽略,或者是设置不来,或者是要设置的地方真的很多,设置好了游戏分辨率又忘记了修改快捷键。 有什么办法,可以让这样的情况不发生呢? 解决方法: 许多游戏会把游戏设置保存在某个文件,我们在本机上设置好游戏设置保存之后,复制这个游戏设置文件,用它覆盖掉使用者电脑上的游戏设置文件,即可让使用者电脑的游戏设置和本机的一致。比如某灵游戏,在 我的文档->BnS->NCSOFT->ClientConfiguration.xml ClientConfiguration.xml 这个文件保存了游戏的界面设置,快捷键设置、画面设置等。知识拓展一下: 如果是要备份游戏设置文件呢? 我们可以把使用者电脑中的文件先移动到其它文件中, 例子中,将游戏配置文件移动到了F盘的test文件夹里。 我们使用File文件插件中的MoveFile命令,将 ClientConfiguration.xml 文件移动到F 盘test文件夹下、

代码: 路径=CreateObject("Shell.Application").Namespace(&H5).Self.Path &"\BnS\NCSOFT\" Call Plugin.File.MoveFile(路径&"ClientConfiguration.xml","F:\test\") 另:使用vbs 写法如下 Set fso = CreateObject("Scripting.FileSystemObject") 路径=CreateObject("Shell.Application").Namespace(&H5).Self.Path &"\BnS\NCSOFT\" Call 移动文件(路径&"ClientConfiguration.xml","F:\test\") Sub 移动文件(ywj,mb) // sub 移动文件(源文件地址,目标文件夹地址) Dim fso Set fso = CreateObject("Scripting.FileSystemObject") fso.MoveFile ywj, mb End Sub 评论,观念,各有不同做好自己那份就好

按键精灵_鼠标命令

命令名称 LeftClick 左键单击命令功能模拟点击鼠标左键 命令参数参数1 整数型,次数 返回值无 脚本例子 按键精灵8及以上语法复制代码 1.//LeftClick、LeftClickS、LeftClickH 2.//LeftClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别 的要求,PS2(圆口)和USB接口的鼠标都可以使用 3.//LeftClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标点击查看使 用硬件模拟方式的注意事项 4.LeftClick 5 5.//在当前鼠标的位置单击鼠标左键5次 脚本例子 按键精灵7及以上语法复制代码 1.//LeftClick、LeftClickS、LeftClickH 2.//LeftClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别 的要求,PS2(圆口)和USB接口的鼠标都可以使用 3.//LeftClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标点击查看使 用硬件模拟方式的注意事项 4.LeftClick 5 5.//在当前鼠标的位置单击鼠标左键5次 命令名称 LeftDown 左键按下命令功能模拟按下鼠标左键 命令参数参数1 整数型,次数 返回值无 脚本例子 按键精灵8及以上语法复制代码 1.//LeftDown、LeftDownS、LeftDownH 2.//{次数}在这个语句中虽然有效,但没有实际意义. 3.//LeftDownS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的 要求,PS2(圆口)和USB接口的鼠标都可以使用 4.//LeftDownH: 硬件模拟方式,仅支持PS(圆口)的鼠标点击查看使 用硬件模拟方式的注意事项 5.LeftDown 1 6.//在当前鼠标的位置按下鼠标左键

按键精灵教程

变量!神奇的小柜子 变量就是会变化的量。就像一个小柜子,我们可以在柜子里装载不同的东西,而当我们需要找到这些东西的时候,只要记住柜子的名字就可以了。 使用变量的方法是:先定义(给柜子起名)、再赋值(将物品放进柜子)、最后使用(根据柜子名字找到放在其中的物品)。 使用Dim命令定义变量,例如: Dim str1 //定义变量str1 Dim var1=22 //定义变量Var1,并且赋值为22 例子1:使用变量设置输出文字的内容 1、下面红色的是3行脚本,请把他复制到“源文件”当中 Dim str1 str1 = "你很聪明" SayString str1 2、Dim str1 就是定义变量,也就是说我们创建了一个小柜子,给他起名为str1 3、str1 = "你很聪明" 就是赋值,我们把"你很聪明"这几个字放到str1这个小柜子里 4、SayString str1 表示我们输出str1这个变量的内容,也就是说把str1这个小柜子里的内容拿出来交给SayString 这个命令去使用。 5、如果你希望修改喊话的内容,只要修改str1这个小柜子里的内容就可以了。 例子2:变量的一些用法 a=1 把数字1放进柜子a中。 b="你猜对了吗?" 把字符串你猜对了吗?放进柜子b中。字符串必须用""包含。 dc=3.14159265 把小数放进柜子dc中。 num1=1 num1=33 num2=55 sum=num1+num2 首先把33和55分别放入num1和num2中。然后把他们取出来,做加法操作(加法是由CPU来处理的),把结果放在sum中。结果sum等于88 num1=1 num1=33 num1被给值为1,然后又给值为33。此时,num1中存储是的33。1就被覆盖掉了。没有了:) sum=sum+1 这句不等同于数学的加法,也是初学者不容易理解的地方。我们只要想,把sum拿出来和1做加法,再放回sum中就可以了。sum原来的值是88,做完加法后,sum等于89。 pig=1 pig=pig*3+pig 能猜出pig最后等于几么?1*3+1。结果是4 例子3:使用变量输入1到100的数字 VBSCall RunApp("notepad") Delay 2000 a=1

学会用按键精灵制作游戏脚本之前后台坐标关联教程

学会用按键精灵制作游戏脚本之前后台坐标关联教程 来源:按键学院【按键精灵】 各位大大在切换前后台命令的时候,有没有遇到坐标切换呢~ 有没有发现前后台的命令,对同一个窗体内容,居然坐标不同!! 今天~院刊就跟大家普及下前台坐标与相对应的后台坐标知识~ 什么是前台坐标和后台坐标呢? 什么是前台坐标? 以屏幕左上角的坐标为起点(0,0,从而获取到的各个窗体的坐标,就是前台坐标。 什么是后台坐标? 以窗口左上角为起点(0,0,从而获取到的这个窗体内的相对坐标,就是后台坐标。 如图: 我们来举个栗子吧,例如txt文本里的输入文字的起始点。

至此,各位大大知道前后台坐标的联系了吧。一个是绝对坐标(前台),一个是相对坐标(后台)。 那么如何进行前后台坐标的切换呢 从上图里,聪明机智的小伙伴们就会发现:如果知道了前台坐标,也知道了窗口左上角的值。那么窗口客户区内的 任意后台的坐标,不是都可以通过以下计算来获得了: 后台x坐标=客户区前台x坐标-客户区左上角前台x坐标 后台y坐标=客户区前台y坐标-客户区左上角前台y坐标 如何获得客户区前台的x,y坐标呢? 我们使用按键精灵自带的窗体插件命令:GetWindowRect来获取。 命令名称: GetWindowRect 窗口边框大小 命令功能:得到窗口句柄的边框大小(包括标题栏 命令参数:参数1 整数型,窗口句柄

返回值:字符串型,边框大小(包括标题栏 注:返回为:边框窗口左角X坐标|边框窗口左上角Y坐标|边框窗口右下角X坐标 |边框窗口右下角Y坐标 //下面这句是得到窗口句柄的边框大小(包括标题栏 sRect = Plugin.Window.GetWindowRect(句柄 将你所要获取的窗口句柄填入括号内就可以啦~ 范例举例: 举个萌萌哒的例子:向记事本特定位置输入文字。 例如我要往“hello”和“按键精灵”中间插入文字: 2014-9-17 18:03 上传 下载附件(8 KB 思路: 每次打开记事本的位置,有可能会有变化。而我们又不能每次都要去获取它的坐标再改脚本,这样太费力了。所以呢,只要锁定了记事本,知道了目标在记事本中的相对位置就可以操作啦。 同理,寻找游戏里的物品目标,前台不稳定。后台命令也是基于相对坐标的。 1. 先找到目标窗体的左上角坐标 (通过窗体插件命令:GetWindowRect来获取) 2. 再找到目标窗体内,“hello”和“按键精灵”中间的坐标 (为了方便,我们用抓抓获取。在游戏中,可以通过找图找色来获取前台坐标)

按键精灵简单教程

关于按键精灵9.0对于批量工作速度的快速提升 首先这是一个非常简单好用的工具。 新建输入文件名,写代码,点调试,按启动热键启动。 PS:关于录制,不是很好用,有兴趣也可以试试。 修改小数位: 修改小数位,先想想自己手动操作是怎么做的,每一步要做什么。1.双击位号。2弹出位号窗口。3点高级。4如果小数位前的钩没打上,你要打上,已经打上了就不能再点击,所以要判断。5双击整数位,输入数字比如3。6双击小数位,输入数字比如2。 如上所述要点4个点。但这里我要加一个点用于判断窗口有无弹出。先打开抓抓,按电脑截屏键(PrtSc)。 在抓抓中点图像,可以按1~0,这里捉到的点和 有关联,写到代码里后和代码里的是没有关联的。

鼠标移到需要点击的地方,右键点击选择加入到点”1”,点”2”..... 在这条线上取它的位置和颜色值,加入1号点在按钮上取2号点在钩的 位取3号点加入4号点加入5号点 ------------------------------------------------------割------------------------------------------------------------- 选择 代码中先加入Delay 10 延时10毫秒

将放大镜中的1号点中的值写入IfColor 中 Do while 1 IfColor 392,357, "A0A0A0", 0 Then //这里写内容 Exit Do End If Loop 这里可以选择,就是IFCOLOR命令。不过上面选了P3,下面也要记得选P3! 上面的是为了判断双击后的窗口是否弹出,弹出后我们才好进行下面的操作(当然也可以用别的方法)(代码原理:用永循环去) ------------------------------------------------------割------------------------------------------------------------- MoveTo 805, 528 LeftClick 1//点高级所在的位置 Delay 20//延时20毫秒(很重要) ------------------------------------------------------割------------------------------------------------------------- 同理将第三点写入IfColor 805, 528, "FFFFFF", 0 Then IfColor 806, 530, "FFFFFF", 0 Then //如果805,528为白色,也就是没打勾 MoveTo 806, 530 LeftClick 1//打上勾 Delay 20//延时20毫秒 END IF ------------------------------------------------------割------------------------------------------------------------- MoveTo 886,500//点整数位所在的位置 LeftDoubleClick 1//双击,相当于是全选中 KeyPress "3", 1//输入3

游戏辅助制作教程――如何使用按键精灵脚本自动间隔时间释放辅助.

方法三:我认为大华的成本核算应该选择分类法和逐步分项结转法。首先大华服装公司的男女西服两种产品所用原料和工艺技术过程相同,可以归一类计算产品成本,因而最适宜采用分类法计算成本。其次,根据题目所给的材料可知,大华公司男女西服一开始就没有分开计算成本,所以我认为采用分类法计算是符合大华公司产品成本计算的。。 结合本公司的特点和管理上的要求本组采用分项逐步结转分步法: 1、其能直接、准确提供按原始成本项目反映的产成品成本资料,便于从整个企业角度考核和分析产品成本计划的执行情况 2、此方法的半成品成本都是随着半成品实物的转移而结转,各生产步骤产品明细账中的生产费用余额,反映了留存在各个生产步骤的在产品成本中,因而能为在产品的实物管理和生产资金管理提供资料。 累计完工率 在分项结转分步法中,约当产量的计算需要使用累计完工率。 累计完工率=(以前各工序工时定额之和+本工序工时定额×本工序完工率)÷(以面各工序工时定额之和+本工序工时定额) 我们发现计算累计完工率的关键在于工时定额的测算。 工时定额的取得; (1通过总结过去的经验:通过询问服装厂工艺人员经验我们得到以下信息,西服裁剪、缝纫、平整分别需要0.5h、7h、1h。 (2以同类产品的工件或工序的时间定额为依据进行对比分析后推算出来:通过网上资料搜寻发现日产量为1200件的服装厂西服裁剪缝纫、平整分别需要82s、885s、115s。 通过观察累计完工率的公式我们发现,由于计算累计完工率需要的是各工序工时定额的比,经过测算各工序定额工时占定额工时比例可以得知: 项目裁剪工序缝纫工序平整工序总结过去的经验的到数值5%80%15%

按键精灵 输入框

按键精灵输入框 一、控件介绍 在输入框中单击鼠标会出现插入点光标,我们可以直接在输入框中输入文字或文本信息。二、创建控件 创建输入输入框和之前创建标签的方法是一样的。在工具栏上点击输入框控件。移动鼠标到QUI的窗体上,这时鼠标就会变成“十”字形状,这就说明已经成功选择创建输入框了。然后,在编辑区域按住鼠标左键,框选一块区域,松开鼠标左键。这时界面上就创建出一个输入框出来了,如下图。 三、控件属性 在QUI在输入框的属性总共有10项。其中有4个基本属性和5个位置属性外加1个其他属性(控件样式)。 基本属性分别是:名称(Name)、显示(Visible)、有效(Enabled)、标题(Caption)。 位置属性分别是:左边(Left)、上边(Top)、宽度(Width)、高度(Height)、显示顺序(Z Order)。

其他属性为“密码”。这个属性是为了提供满足用户们输入密码而设计的,当这个属性值为“是”时,在输入框输入的全都了“*”代替。并且该属性在QUI编辑时就已经设置好,在运行过程当中无法修改这个属性。 (1)获取输入框的值 输入框控件是制作界面中最使用的控件类型。主要是提供给用户输入使用的。所以在输入框的控件中最经常发生的一件事情就是获取输入框值的内容。 和标签一样,输入框的内容我们也称它为文本。但是和标签不同的是,输入框文本对应的是T ext。 既然我们知道了输入框上的文本属性是通过Text来访问的。那么我们就在脚本里面获取内容来使用。 在界面中创建一个输入框,默认输入框的名称是“InputBox1”。输入框的文本内容默认也是“InputBox1”。然后我们切换到脚本的源码视图,编辑代码获取文本框控件上的文本内容,并且将这个内容弹窗显示出来。 MessageBox Form1.InputBox1.Text 编辑完成后,点击【保存】,然后进入调试,点击【自定义界面】,可以看到刚才创建的输入框的内容。修改输入框里面的内容,比如修改成“ABCDEF”,点击【保存】,然后【确定】,最后关闭QUI窗体,点击【启动】。 这时就可以看到弹出窗口里面显示着“ABCDEF”。

按键精灵图文教程

手把手教你用“按键精灵”图文教程 类型:转载 按键精灵是一个可以模拟电脑操作的软件,您在电脑上的一切动作都可以让按键精灵模拟执行,完全解放您的双手。按键精灵可以帮你操作电脑,不需要任何编程知识就可以作出功能强大的脚本。 如果你还为一些枯燥、繁琐的电脑操作而烦恼,按键精灵绝对会是你最好的帮手。 那么,按键精灵具体能帮我们干什么呢?我们来列举几个例子来说明下。 * 网络游戏中可作脚本实现自动打怪,自动补血,自动说话等; * 办公族可用它自动处理表格、文档,自动收发邮件等; * 任何你觉得“有点烦”的电脑操作都可以替你完成。按键精灵第一个实现了“动动鼠标就可以制作出脚本”的功能。我们不希望为了使用一个小软件而去学习编程知识,考虑到这些,所以按键精灵完全界面操作就可以制作脚本。按键精灵的脚本是纯粹的TXT文件,即使是目前新增了插件功能,也引入了数字签名的机制。因此我们可以放心的使用网站上的脚本而不用担心会有病毒。 脚本就是一系列可以反复执行的命令.通过一些判断条件,可以让这些命令具有一定的智能效果.我们可以通过”录制”功能制作简单的脚本,还可通过”脚本编辑器”制作更加智能的脚本.今天我们就通过录制一个最简单的脚本,来手把手的教大家使用按键精灵。 上网一族一般开机后会先看看自己邮箱,或者看看自己博客;每天如此,可能都有些烦了。现在好了,把这些繁杂的事情交给按键精灵吧。今天我们就来录制一个自动登录博客,并对整个页面进行浏览的脚本。 首先,我们打开“按键精灵”。其运行界面如下(图1): 图1 运行界面 打开软件后点击工具栏上“新建”项(如图2);之后进入“脚本编译器”界面(如图3)。

学习脚本制作:按键精灵让QUI界面如此炫酷

学习脚本制作:按键精灵让QUI界面如此炫酷 来源:按键学院【按键精灵】脚本功能很好用,但是那乱得让人有尿意的界面……总是让人闻风丧胆有木有?吓哭小孩子有木有?脚本的界面可以说是脚本的门面,要长得好看才能吸引更多怪蜀黍~ 只要咱们懂得利用控件,尽情挥洒咱的无限创作力,一定可以让QUI界面更骚气~ 滑动界面 骚气值:五颗星,很骚气 功能:鼠标点击界面滑动,切换到其它页面 效果演示: 主要控件 标签、定时器、选项卡、单选框、热键

代码: Dim x1,x2,y1,y2,选项,选项记录 Event Form1.Load Form1.Hotkey1.Register True Form1.Timer1.Enabled = False //默认定时器是启动状态,所以要先停止 Form1.Timer1.Interval = 120 //设置定时器循环的间隔时间(单位:毫秒) 选项=Form1.TabControl1.T ab Call 单选框显示() End Event Event https://www.360docs.net/doc/2612273017.html,bel1.Click GetCursorPos x1, y2 选项记录=Form1.TabControl1.Tab Form1.Timer1.Enabled = False //防止被重复启动定时器 Form1.Timer1.Enabled = True End Event Event Form1.Hotkey1.Hotkey Form1.Timer1.Enabled = False End Event Event Form1.Timer1.Timer Dim d GetCursorPos x2, y2 d = (x2 - x1) \ 70 +选项记录 If d >=0 and d<=4 Then Form1.T abControl1.Tab = d End If Call 单选框显示() End Event Sub 单选框显示() 选项=Form1.TabControl1.T ab Select Case 选项 Case 0 Form1.OptionBox1.Value = 1 Case 1 Form1.OptionBox2.Value = 1 Case 2 Form1.OptionBox3.Value = 1 Case 3 Form1.OptionBox4.Value = 1 Case 4 Form1.OptionBox5.Value = 1 Case Else End Select End Sub

按键精灵教程:启动热键的设置技巧

按键精灵教程:启动热键的设置技巧 来源:按键学院【按键精灵】热键设置 启动热键:启动当前脚本 暂停/继续热键:暂停或继续当前脚本。(暂停之后再继续,是从脚本暂停的位置继续向下执行,而不是重新运行脚本) 中止热键:结束当前脚本。 全部中止热键:结束所有脚本。 热键可以设置为一个单一键,例如:F10、F11 也可以设置组合键,例如:ctrl+a、ctrl+b 还可以设置为鼠标键,例如:鼠标左键单击、右键单击等

单一键的设置 打开我们的脚本——>点击脚本属性 即可看到热键的设置界面 点击要修改的热键输入框 点击热键输入框之后,按下要设置的按键,例如:F7 设置方式十分简单,但是我们会发现,如果我们点击输入框按下enter键又或者是shift键时,不能成功的设置热键 要怎么解决呢?

要设置这些特殊键为启动热键时,我们可以点击热键输入框后面的倒三角红色按钮,然后点击键盘热键,选择我们需要的按键 组合键的设置 组合键的设置和单一键的设置方法是一样的 打开我们的脚本——>点击脚本属性 即可看到热键的设置界面 点击要修改的热键输入框 点击热键输入框之后,按下要设置的按键,例如:Ctrl+A 或者三个组合键:Ctrl+Alt+A 鼠标热键的设置 要设置鼠标键为热键,不能直接在热键输入框里点击鼠标键来设置 需要点击热键输入框后面的倒三角红色按钮,然后点击鼠标热键,选择我们需要的鼠标键

热键模式设置 当我们在一些游戏里,发现启动热键按了无效的时候。我们可以尝试更换热键模式再使用。我们可以理解为,每个游戏的机制不同,就像人一样,有的喜欢吃甜有的喜欢吃辣。而我们的热键模式就好比是:酸甜苦辣咸。 不喜欢酸就换成甜,不喜欢甜就换成辣,口味多样,总有一款适合你。 热键模式有五种: 普通模式:不占用热键原有功能,兼容性稍差 增强模式:兼容性最好,但占用热键原有功能 硬件模式:能解除屏蔽,只适用于win2000以上 软件模式:兼容性好,但可能被误报木马或病毒 共享模式:兼容性好,可适用大部分操作系统 设置方式: 1、点击设置按钮 2、点击热键,即跳转到热键模式的设置界面

按键精灵经典教程

按键精灵经典教程 一、键盘命令(2~5页) 二、鼠标命令(5~13页) 三、控制命令(13~22页) 四、颜色/图像命令(22~28页) 五、其他命令(28~355页)五、网游脚本实例(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. 7.KeyDown "A",1 8.//上面的支持按键字符,语句表示按住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. 7.KeyPress "A",1 8.//上面的支持按键字符,语句表示按A键1次 脚本例子:(7.x语法) 复制代码 1.//KeyPress、KeyPressS、KeyPressH 2.//KeyPressS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要 求,PS2(圆口)和USB接口的键盘都可以使用 3.//KeyPressH: 硬件模拟方式,仅支持PS(圆口)的键盘点击查看使用硬件

【最新2018】按键精灵知识-精选word文档 (11页)

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除! == 本文为word格式,下载后可方便编辑和修改! == 按键精灵知识 篇一:按键精灵新手入门 按键精灵文档简介: 基本信息→基本介绍→使用说明→软件功能→软件特点→使用方法→更新日志→常见问题→安全认证 按键精灵: 按键精灵是一个模拟鼠标键盘动作的软件。通过制作脚本,可以让按键精灵代替双手,自动执行一系列鼠标键盘动作。按键精灵简单易用,不需要任何编程知识就可以作出功能强大的脚本。只要在电脑前用双手可以完成的动作,按键精灵都可以替代完成. 按键精灵基本信息:软件版本:按键精灵(Quick Macro) 9.0版 软件大小: 7.93MB 更新时间: 201X-08-11 软件类别:国产软件 / 键盘鼠标 软件语言:简体中文 / 繁体中文 应用平台: Win9x/Win201X/WinXP/WinVista/Win7 软件性质:免费软件 开发商:兄弟工作组 按键精灵会员注册: 按键精灵基本介绍: 按键精灵可以帮你操作电脑。类似于按键精灵的软件有 "

按键游侠","super-ec"等。从编程的角度看,集合一些插件的脚本编辑、调试工具。代码不公开。生成的小精灵,模式化界面,界面中有广告,以此盈利 软件功能:1.网络游戏中可作脚本实现自动打怪,自动补血,自动说话等; 2.办公族可用它自动处理表格、文档, 按键精灵 自动收发邮件等 3.任何觉得“有点烦”的电脑操作都可以替完成。按键精灵软件特点: 1.操作简单,非常容易上手; 2.功能强大,脚本语句丰富; 3.界面友好,使用鼠标就可以完成大部分脚本的制作动作 4.兼容性好,支持大部分Windows下的软件 5.拥有“神盾”保护功能。 按键精灵使用方法:第一步:设计脚本功能 按键精灵 写脚本之前要想清楚自己要做什么功能。在这里来制作一个每隔5秒自动按F5刷新网页的脚本。 第二步:设计脚本 为制作了组图来说明如何制作这个脚本。 做任何脚本都是两步:第一步先设计功能,第二步就是用按键精灵提供的命令完成这些功能。 常见问题: 什么是脚本? 脚本就是一系列可以反复执行的命令.通过一些判断条件,可以让这些命令具有一定的智能效果. 按键精灵软件如何制作脚本?

按键精灵学习教程

按键精灵学习教程 一、 1、子程序和函数调用演示 //<>---------------------------------------------子程序调用 Call 普通子程序() Call 代入参数的子程序(100,50) //<>---------------------------------------------函数调用 Msgbox 代入参数的函数(100,50) Sub 普通子程序() Msgbox "我是普通子程序,被调用了" End Sub Sub 代入参数的子程序(a,b) c=a+b Msgbox "我是代入参数的子程序,被调用了。结果值为:" & c End Sub Function 代入参数的函数(a,b) c=a*b 代入参数的函数= "我是代入参数的函数,被调用了。结果值为:" & c End Function 2、重启脚本运行演示 For i=0 to 2 Delay 1000 Call Plugin.Msg.ShowScrTXT(0, 0, 1024, 768, "屏幕内容填写" & i, "0000FF") Next RestartScript //重新启动脚本运行 3、中文名变量演示

//<>---------------------------------------------用户自定义变量支持中文名为变量名 UserVar 启动=DropList{"打开":1|"关闭":0}=0 "补血启动开关" UserVar 补血=0 "补血百分比%" //<>---------------------------------------------定义变量支持中文名为变量名 Dim 提示 提示="补血启动开关未设置打开!" If 启动=1 Then Msgbox "补血百分比为:"& 补血& "%" Else Msgbox 提示 End If 4、选择条件结构演示 UserVar 变量=0 "输入(0~9)数字" //<>---------------------------------------------以下是选择条件结结构判断 Select Case 变量 Case 0 Msgbox "你输入的数字为:0" Case 1 Msgbox "你输入的数字为:1" Case 2 Msgbox "你输入的数字为:2" Case 3 Msgbox "你输入的数字为:3" Case Else Msgbox "你输入的数字不正确,请输入(0~3)数字!" End Select 5、下拉型用户自定义 //说明:{}当中是下拉的选项=0是指的默认显示哪个选项(从0开始) UserVar Var1=DropList{"低于10%时补血":"0.1"|"低于20%时补血":"0.2"|"低于30%时补血":"0.3"}=2 "自动补血设置" UserVar Var2=0 "普通自定义变量" MessageBox(Var1) MessageBox(Var2) 6、退出脚本运行演示

游戏辅助制作教程:按键精灵解密两种排序算法

游戏辅助制作教程:按键精灵解密两种排序算法 一、冒泡排序 冒泡排序是最慢的排序算法,但也是新手最容易上手的一个排序方法。在实际运用中它是效率最低的算法。它通过一趟又一趟地比较数组中的每一个元素,使较大的数据下沉,较小的数据上升。它是O(n^2)的算法。O(n^2)的算法其实是衡量算法速度快慢的一个指标,我们称之为算法的时间复杂度。时间复杂越大,算法的执行效率越低。 当然,并不是越快的算法,一定越好。算法还有另一个指标,叫空间复杂度,即算法占用多少空间,这个和内存息息相关。一个算法可能很快,但是它占用的内存多,不一定耗得起。所以呢在不同的场合,我们需要根据不同的要求,会选择最合适的算法。 但是在游戏扫拍卖或者其他需要比拼速度的时候,时间就是金钱~越快越能抢占先机。现在我们介绍另一种更快更有效率的排序——快速排序,时间复杂度为O(n*logn)。 二、快速排序的算法思想 快速排序采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。 该方法的基本思想是:

1.先从数列中取出一个数作为基准数。(不要被这个名词吓到了,就是一个用来参照的数,待会你就知道它用来做啥的了)。 2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。 3 . 再对左右区间重复第二步,直到各区间只有一个数。 通俗一点解释就是:假设我们现在对“6 1 2 7 9 3 4 5 10 8”这个10个数进行排序。就让第一个数6作为基准数吧。接下来,需要将这个序列中所有比基准数大的数放在6的右边,比基准数小的数放在6的左边。 方法其实很简单:分别从初始序列“6 1 2 7 9 3 4 5 10 8”两端开始“探测”。先从右往左找一个小于6的数,再从左往右找一个大于6的数,然后交换他们。这里可以用两个变量i和j,分别指向序列最左边和最右边。我们为这两个变量起个好听的名字“哨兵i”和“哨兵j”。刚开始的时候让哨兵i指向序列的最左边(即i=1),指向数字6。让哨兵j指向序列的最右边(即=10),指向数字。

(完整版)按键精灵常用脚本命令汇集

//~~~~~~~~~~{[做后台的准备]}~~~~~~~~~~~ //下面,用标题名来找父窗口 Hwnd = Plugin.Window.Find(0, "无标题- 记事本") //下面,根据父窗口来找子窗口(找对了标题名才有效) HwndEx = Plugin.Window.FindEx(Hwnd, 0, 0, 0) //下面,用程序名来找父窗口 Hwnd = Plugin.Window.Find("Notepad", 0) //下面,根据父窗口来找子窗口(找对了类名才有效) Hwnd = Plugin.Window.FindEx(Hwnd, 0, "Edit", 0) //~~~(也可以改指定程序的标题名来得来句柄)~~~ //下面,将指定程序名的标题名变为变量 Hwnd = Plugin.Window.Find("Notepad", 0) //改变窗口标题 Call Plugin.Window.SetText(Hwnd,"AJJL") //*********》之后可加第一种父子窗口就OK了《********* //~~~如果以上都不行,只剩下最后一种方法~~~~ //下面,鼠标指向的程序定为Hwnd这个变量(不过一定要加标记,否则变为假后台) hwnd=Plugin.Window.MousePoint() Rem star Goto star //区域模糊找色 //(XY,是坐标)(后面的是句柄,左X,上Y,右X,下Y,16位颜色,找的方式,相似度)XY = Plugin.Bkgnd.FindColorEx(Hwnd, 0, 0, 20, 20, "FFFFFF", 0, 0.9) //将XY坐标变为变量,再折分成X坐标和Y坐标。 MyArray = Split(XY, "|") X = Clng(MyArray(0)): Y = Clng(MyArray(1)) //后台判色 Color = Plugin.Bkgnd.GetPixelColor(hwndex,300,150) If color = "020503" Then //根据固定32位地址的值加红蓝(HP少于就。。。) Val = Plugin.Memory.Read32Bit(Hwnd, &H400000) //注意格式:符号&+字母H+8位地址 If clng(val)<=clng(HP)

按键精灵游戏开发教程

按键精灵游戏开发教程 来源:按键学院【按键精灵】 渐开线找怪是一种高效率的找怪方法,以角色为中心点,向外扩散,找离角色最近的怪物。 渐开线 画渐开线重要的几个点: 1、起始点坐标 2、线与线之间的距离。

3、转向。 4、线长。(上图中,渐开线并不是一口气画完的,是一段线一段线的画。) 游戏里的规律 咱们今天讲的例子是2D游戏《神涂》。渐开线要怎么应用到游戏找怪呢? 咱们先了解下游戏里的规律,再将渐开线套用进去。 规律1: 在2D游戏里,角色、怪物移动的距离是固定的,就像走在棋盘里一样,移动一步就像走了一个格子。 在今天的游戏例子中,角色、怪物横着走一步是48个像素点,竖着走一步是32个像素点。(不是所有2D游戏都是这样的规格)

那么,如何知道一步的距离是多少呢? 我们可以获取角色血条的第一个像素点坐标,然后向上移动一步,再次获取血条第一个像素点坐标。y坐标的差值,即是竖走一步的距离,用同样的方法,横走一步即可获得横走一步的距离 规律2: 离角色越近的怪物,格子的圈数越少。

经过图片的分析,情况一目了然。 以角色为中心,一圈圈往外扩散,不正是渐开线么。 渐开线找怪思路 1、以角色右边一格为渐开线起始点,一圈圈往外遍历格子。(不一定要角色右边一格为起始点,上下左右都可以,不要以角色为起点即可。因为咱们的角色血条也是红的,如果从角色那一格开始遍历,那么一开始就找到角色自己的血条。) 2、遍历到第26个格子的时候发现怪物,角色移动过去打怪。打完怪物之后,以当前角色所在位置的右边一格为起始点,再次开始渐开线找怪。 例如:渐开线是8圈,遍历了8圈格子,其中第三圈和第五圈都有怪物。 遍历到第三圈找到怪物,角色移动到怪物点打完怪。 剩下的五圈继续遍历扩散,但不判断有没有怪物。

相关文档
最新文档