最新快手范例word版本 19页Word文档格式.docx
《最新快手范例word版本 19页Word文档格式.docx》由会员分享,可在线阅读,更多相关《最新快手范例word版本 19页Word文档格式.docx(16页珍藏版)》请在冰点文库上搜索。
ENTER"
key.press("
)
}
上面的范例摘自快手最新帮助文档-winex库/svn/aauto/chm/aauto%20%20reference%20manual/libraries/std/winex/winex.html
5e365
花了几天时间终于完成了第二个AAuto的QQ小游戏外挂(程序仅用于AAuto学习研究)
适用于目前最新版QQ连连看(2.0beta08build041)
算法自己写到后面也有点晕了,算法应该还能更精简,大家有更好的方式可以讨论下,程序在本机调试通过正常,大家也可以试一下自己机器是否也正常,如有问题请反馈给我,我再检查是什么原因
另外请教一下crane,再反馈一些使用体验:
var声明的局部变量文档里要求要赋初值,不赋初值可以吗,因为
有时var声明变量的时候还不知道初值,但如果在知道初值的时候
再声明又可能作用域变的更小了(比如在某个大括号内部),是否
必须赋初值?
另外在调试代码的时候费了不少劲,还没找到很好的调试方法,没
有单步和断点,程序出了问题,目前都是猜测问题可能会出在哪里,
然后加很多io.print(),最终BUG还是找到了
多行注释的时候,注释完后第一行的缩进会变掉,不知道为什么这
样,是故意这样的吗
beginend内的代码段,有时在敲代码或者退格的时候突然会自动
收缩起来,个人觉得有点不习惯
总之:
AAuto很棒,对我这样业余写点小程序的觉得效率很高,而
且有很多区别于其他语言的独有特色。
简单易用,随便复杂两行代
码,点运行就能出东西......感谢crane,AAuto的明天一定会更
好.
AAuto太多特性都没掌握,继续学习.......
帖子长度限制,部分程序代码:
/*
*QQ连连看外挂
*作者:
5e365
*版本:
适用与最新版QQ连连看(2.0beta08build041)
*日期:
201X.9.11
*备注:
程序仅用于AAuto学习研究
*/
importwin.ui;
importwin;
importprocess;
importmouse;
/*DSG{{*/
varwinform=win.form(parent=...;
min=1;
bottom=57;
max=1;
text="
AAutoForm"
;
right=186)
winform.add(
button={bottom=44;
right=80;
left=15;
top=15;
font=LOGFONT(name="
宋体"
h=-12);
z=0;
单连"
cls="
button"
};
button2={bottom=43;
right=167;
left=101;
z=1;
秒杀"
}
/*}}*/
ClearPair=function(gridA,gridB)begin
varoffsetX=getWinPos(_GameName).left;
varoffsetY=getWinPos(_GameName).top;
varptA=Grid2Pos(gridA,offsetX,offsetY)
varptB=Grid2Pos(gridB,offsetX,offsetY)
mouse.click(ptA.x,ptA.y,true)
mouse.click(ptB.x,ptB.y,true)
end;
GetClearPair=function(CheckBoard)begin
vargridA=:
POINT()
vargridB=:
vargridM=:
vargridN=:
varvalA=0
varvalB=0
for(i=1;
19*11;
1){
if(!
CheckBoard[i])
continue
gridA=Index2Grid(i)
valA=CheckBoard[i]
for(j=i+1;
valB=CheckBoard[j]
if(valB!
=valA)
gridB=Index2Grid(j)
if(gridA.y==gridB.y){//case1
if(HorizontalCase(gridA,gridB,CheckBoard))returngridA,gridB;
}elseif(gridA.x==gridB.x){//case2
if(VerticalCase(gridA,gridB,CheckBoard))returngridA,gridB;
}else{//case3
if(TiltCase(gridA,gridB,CheckBoard))returngridA,gridB;
returnnull,null;
winform.button.oncommand=function(id,event){
varx,y=mouse.getPos();
vargridA,gridB=GetClearPair(UpdateCheckBoard())if(gridA)
ClearPair(gridA,gridB)
else
win.msgbox("
无任何可消,请重组!
"
AAuto"
mouse.move(x,y,true)
winform.button2.oncommand=function(id,event){
vargridA,gridB=GetClearPair(UpdateCheckBoard())while(gridA){
win.delay(10)
gridA,gridB=GetClearPair(UpdateCheckBoard())}
winform.show(true)
win.loopMessage();
returnwinform;
crane
1、请用快手创建web工程,
2、发布为不同名的exe,例如a.exeb.exec.exe
3、然后同时打开运行。
web窗体关键代码如下:
//导入注册表库
importwin.reg;
//记录旧的设置
web_reg=
win.reg("
HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\EXPLORER\UserShellFolders"
web_cookeis=web_reg.queryValue("
Cookies"
web_cache=web_reg.queryValue("
Cache"
web_title=web_reg.queryValue("
WindowTitle"
//改变cookies目录
web_reg.setSzValue("
io.fullpath("
/web/cookies"
))
/web/Cache"
))web_reg.setSzValue("
//声明API
Wininet:
=..raw.loadDll("
Wininet.dll"
篇二:
快手AAUTE多线程中的交通信号灯
多线程中的交通信号灯:
thread.event
标准库中的thread.event用于创建线程事件对象,
该对象类似于多线程中的交通信号灯、实现红绿灯机制实现多线程之间的同步协作。
创建thread.event对象的代码如下:
源代码[AAuto]
001importthread.event;
002varevent=thread.event("
交通信号灯"
其中第一个参数指定一个唯一的名称、一般建议用快手工具里的GUID工具生成一个GUID以保证其唯一性。
不同线程、或不同进程中使用相同的名称就可以打开同一个事件对象(thread.event对象不但可以跨线程、也可以跨进程使用)使用event.conflict属性可以判断其他线程或进程是否打开了该事件对象。
thread.event有三个构造参数,如下:
varevent=thread.event("
事件唯一名称"
是否手动复原信号,初始状态)
参数2、参数3都是可选参数,默认都是false.
初始状态为false表示初始化为无信号状态,如果手动复原信号为false表示自动复原信号,也就是每次放行线程以后自动重置为无信号状成。
如果把event比作交通信号灯,那么无信号状态类似红灯表示禁止通行,而有信号状态类似绿灯表示放行等待的线程,几个关键的函数:
003
004event.reset();
//重置为无线号状态、类似于切换为红灯
005event.set();
//切换为有线号状态、类似于切换为绿灯
006event.wait();
//阻塞线程、并等待信号变为绿灯
007//如果不是手动复原的事件对象、执行到这里会自动复原为无信号状态(绿灯)
001io.open()
002
003thread.create(
004function(){
005importthread.event;
006varevent=thread.event("
007
008event.wait();
009io.print("
汽车1过了"
010}
011)
012
013thread.create(
014function(){
015importthread.event;
016varevent=thread.event("
017
018event.wait();
019io.print("
汽车2过了"
020}
021)
022
023thread.create(
026varevent=thread.event("
027
028event.wait();
029io.print("
汽车3过了"
030}
031)
032
033//给一点时间让所有线程进入等待状态
034sleep(100)
035
036importthread.event;
037varevent=thread.event("
038event.set();
//切换为绿灯
执行上面的代码以后,你会发现只有一部汽车过了(线程是并发执行的,所以可能是任意一部汽车先过),这是为什么呢?
thread.event的二个构造参数如果为false(默认就是这个值)那么创建的事件对象是自动复原信号的,当一个等待的线程被放行以后,该对象会立即自动切换为无信号状态(用上面的示例来讲:
就是绿灯放行一部车子就立即变为绿灯,一次只能过一部车子)
如果要一次放行所有等待的线程,那就要做如下修改,使事件对象使用手动复原机制,示例如下:
交通信号灯22"
true/*手动复原*/)
004thread.create(
007varevent=thread.event("
008
009event.wait();
010io.print("
011}
012)
013
014thread.create(
015function(){
016importthread.event;
017varevent=thread.event("
018
019event.wait();
020io.print("
021}
022)
023
024thread.create(
025function(){
026importthread.event;
027varevent=thread.event("
028
029event.wait();
030io.print("
031}
032)
033
034//给一点时间让所有线程进入等待状态
035sleep(100)
036
037io.open()
038io.print("
绿灯了,给大家一秒钟的时间,要过的快过去"
039event.set();
040
041sleep(1000)
042event.reset();
//切换为红灯
043io.print("
红灯了,请遵守交通规则,耐心等待"
下面再看一个例子:
对讲机"
篇三:
重命名快手V1.0使用说明
全国中小学学籍平台需要导入学生的相片,而相片需要以学生身份证号码为名,如果人工将相片一个一个地重命名,将费时费工,效率极低,甚至容易出错。
在此背景下,软件“重命名快手”诞生了。
重命名快手是一款由Excel文档提供改名依据而批量重命名的工具软件,可以将原先编号好的学生相片,瞬间以学生身份证号码(也可以其他)为名给相片重命名,从而减少大量的工作,大大提高办公的工作效率。
下面就以批量修改学生相片名称为例介绍重命名快手V1.0的基本使用方法。
一、将从网上下载的软件压缩包解压到你的电脑某个文件夹内。
解压后有1个文件夹和4个文件。
二、编辑Excel文档。
文档名称可以任意,改名依据的信息存放在第1个工作表,该工作表至少要有2列信息,其中1列是改名前的文件名,1列是改名后的文件名。
如范例中的“备注”为改名前的文件名称,“学生身份证号”是改名后的文件名称(这两列的名称也可以任意),其他内容无限制,可以随便。
三、将相片存放在一个文件夹中,里面各相片的名称应与Excel文档内提供的信息要对应。
这是改名前的相片文件(范例):
四、重命名:
1、运行“重命名快手V1.0”,出现如下界面(未注册):
注册后是这样的界面(缩小图):
2、从左边的窗口中选择分区(从下拉中选择)----选择文件夹(双击)。
双击选定
3
、从Excel文档获取有关重命名的依据信息。
点击择路径与文件:
,从对话框中选
如从Excel文档顺利获取有关重命名的依据信息,则在信息窗口会显示“Excel文档表内信息已读取”。
软件打开文档后会自动在没有改变原文档信息的条件下关闭文档。
4、设置重命名的依据。
首先点击“文件后缀名”后面的下拉,从下拉中选择需要改名的文件后缀名,相片文件的后缀一般是.jpg。
其次是设置原来文件以什么为名,如原文件以“备注”为名,则从下拉中选择“备注”:
最后再用同样的方法设置改名后以什么为名,如范例中是以“学生身份证号”为改名后的文件名称,那么就从下拉中选择“学生身份证号”。
当然下拉中有“出生日期”,也可以选择“出生日期”;
如果选择“出生日期”,则改名后的文件以“出生日期”为名。
5、检查,预测重命名的结果。
点击。
软件会自动检查你的设置是否正确,原名和改后名是否出现矛盾;
根据你提供的信息,软件还会自动检查能给多少个文件重命名、多少个不能重命名等信息。
该信息会以列表形式出现。
其中“=>”前是原文件名,后是改名后的文件名称,后面括号内提供改名的结果,如果是“√”表示能顺利改名,“×
”表示无法改名,原因可能是Excel文档中没有提供该文件的改名后是什么名称,出现此情况,可以重新编辑Excel文档,添加该文件改名后的文件名信息。
另外还可能有如下错误信息:
A、出现同名:
改名后的文件名称出现相同,导致无法改名。
B、一名多改:
Excel文档提供的信息中,同一个原文件改后的文件名出现多个。
C、与原文件同名:
改后的文件名与某一个原文件名相同,这个会导致改名过程中出现错乱,最好也不能进行改名。
“改名列表”支持信息导出,导出方法:
点击上面的“导出”按钮,导出的文件以文本文档形式存放在本软件相同的路径下。
生成的文本文档《改名列表》
不想导出,直接点击“退出”。
6、点击“改名”
。
在改名前,软件会再次检查上述的问题,但与“检
验”不同的是本次不会生成“改名的列表”。
如果发现某些错误,还会提示是否要执意改名:
如果这时点击“是”,则软件会继续进行。
但建议最好解决存在错误后再进行改名。
重命名完成后软件会自动更新文件列表:
篇四:
汇编语言介绍
汇编语言介绍编程语言(programminglanguage),是用来定义计算机程序的形式语言。
它是一种被标准化的交流技巧,用来向计算机发出指令。
一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。
最早的编程语言是在电脑发明之后产生的,当时是用来控制提花织布机及自动演奏钢琴的动作。
在电脑领域已发明了上千不同的编程语言,而且每年仍有新的编程语言诞生。
很多编程语言需要用指令方式说明计算的程序,而有些编程语言则属于声明式编程,说明需要的结果,而不说明如何计算。
编程语言的描述一般可以分为语法及语义。
语法是说明编程语言中,哪些符号或文字的组合方式是正确的,语义则是对于编程的解释。
有些语言是用规格文件定义,例如C语言的规格文件也是ISO标准中一部份,201X年后的版本为ISO/IEC9899:
201X,而其他语言(像Perl)有一份主要的编程语言实现文件,视为是参考实现。
编程语言俗称“计算机语言”,种类非常的多,总的来说可以分成机器语言、汇编语言、高级语言三大类。
电脑每做的一次动作,一个步骤,都是按照已经用计算机语言编好的程序来执行的,程序是计算机要执行的指令的集合,而程序全部都是用我们所掌握的语言来编写的。
所以人们要控制计算机一定要通过计算机语言向计算机发出命令。
目前通用的编程语言有两种形式:
汇编语言和高级语言。
编程语言种类:
汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。
它同样需要编程者将每一步具体的操作用命令的形式写出来。
汇编程序通常由三部分组成:
指令、伪指令和宏指令。
汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作。
例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能够实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。
脚本语言(Scriptlanguage,scriptinglanguage,scriptingprogramminglanguage)是为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的计算机编程语言。
此命名起源于一个脚本“screenplay”,每次运行都会使对话框逐字重复。
[1]
早期的脚本语言经常被称为批量处理语言或工作控制语言。
一个脚本通常是解释运行而非编译。
虽然许多脚本语言都超越了计算机简单任务自动化的领域,成熟到可以编写精巧的程序,但仍然还是被称为脚本。
几乎所有计算机系统的各个层次都有一种脚本语言。
包括操作系统层,如计算机游戏,网络应用程序,字处理文档,网络软件等。
在许多方面,高级编程语言和脚本语言之间互相交叉,二者之间没有明确的界限。
脚本编程速度更快,且脚本文件明显小于如同类C程序文件。
这种灵活性是以执行效率为代价的。
脚本通常是解释执行的,速度可能很慢,且运行时更耗内存。
在很多案例中,
如编写一些数十行的小脚本,它所带来的编写优势就远远超过了运行时的劣势,尤其是在当前程序员工资趋高和硬件成本趋低时。
脚本语言是一种解释性的语言,例如Python[2]、vbscript,javascript,installshield
script,ActionScript等等,它不象c\c++等可以编译成二进制代码,以可执行文件的形式存在.[
由于计算机内部只能接受二进制代码,因此,用二进制代码0和1描述的指令称为机器指令,全部机器指令的集合构成计算机的机器语言,用机器语言编程的程序称为目标程序。
只有目标程序才能被计算机直接识别和执行。
但是机器语言编写的程序无明显特征,难以记忆,不便阅读和书写,且依赖于具体机种,局限性很大,机器语言属于低级语言。
高级语言是大多数编程者的选择。
和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。
同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。
高