快手程序集.docx
《快手程序集.docx》由会员分享,可在线阅读,更多相关《快手程序集.docx(13页珍藏版)》请在冰豆网上搜索。
![快手程序集.docx](https://file1.bdocx.com/fileroot1/2022-12/11/302ad74f-9291-49ed-bd84-93e5603ef5bd/302ad74f-9291-49ed-bd84-93e5603ef5bd1.gif)
快手程序集
快手程序集
1、QQ自动聊天程序
2、QQ连连看外挂
3、马甲登录器(一台电脑同时登录多个账号到一个网站)
4、网页与AAuto程序交互例子
5、利用API函数读写INI文件
1、QQ自动聊天程序
作者:
Crane
QQ上自动聊天是越来越麻烦了,
不过用AAuto的winex可以方便的实现自动聊天程序,核心代码很短(用其他编程语言可能要十倍的代码量了)。
//适用于QQ2010(2010/08/17)
importwinex;
importwin.clip;
importkey;
//查找QQ聊天窗口
forhwnd,title,theadId,processIdinwinex.each("TXGuiFoundation","^[^TQ][^XQ].+"){
//恢复窗口
:
:
ShowWindow(hwnd,0x9/*_SW_RESTORE*/)
win.setForeground(hwnd)
win.delay(500)
//输入聊天内容
win.clip.write("聊天内容")
key.press(0,"CTRL","V")
win.delay(100)
//发送聊天内容
key.press(0,"CTRL","ENTER")
key.press("ENTER")
}
上面的范例摘自快手最新帮助文档-winex库
2、QQ连连看外挂
作者:
5e365
花了几天时间终于完成了第二个AAuto的QQ小游戏外挂(程序仅用于AAuto学习研究)
适用于目前最新版QQ连连看(2.0beta08build041)
算法自己写到后面也有点晕了,算法应该还能更精简,大家有更好的方式可以讨论下,程序在本机调试通过正常,大家也可以试一下自己机器是否也正常,如有问题请反馈给我,我再检查是什么原因
另外请教一下crane,再反馈一些使用体验:
var声明的局部变量文档里要求要赋初值,不赋初值可以吗,因为有时var声明变量的时候还不知道初值,但如果在知道初值的时候再声明又可能作用域变的更小了(比如在某个大括号内部),是否必须赋初值?
另外在调试代码的时候费了不少劲,还没找到很好的调试方法,没有单步和断点,程序出了问题,目前都是猜测问题可能会出在哪里,然后加很多io.print(),最终BUG还是找到了
多行注释的时候,注释完后第一行的缩进会变掉,不知道为什么这样,是故意这样的吗
beginend内的代码段,有时在敲代码或者退格的时候突然会自动收缩起来,个人觉得有点不习惯
总之:
AAuto很棒,对我这样业余写点小程序的觉得效率很高,而且有很多区别于其他语言的独有特色。
简单易用,随便复杂两行代码,点运行就能出东西......感谢crane,AAuto的明天一定会更好.
AAuto太多特性都没掌握,继续学习.......
帖子长度限制,部分程序代码:
/*
*QQ连连看外挂
*作者:
5e365
*版本:
适用与最新版QQ连连看(2.0beta08build041)
*日期:
2010.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;text="单连";cls="button"};
button2={bottom=43;right=167;left=101;top=15;font=LOGFONT(name="宋体";h=-12);z=1;text="秒杀";cls="button"}
)
/*}}*/
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=:
:
POINT()
vargridM=:
:
POINT()
vargridN=:
:
POINT()
varvalA=0
varvalB=0
for(i=1;19*11;1){
if(!
CheckBoard[i])
continue
gridA=Index2Grid(i)
valA=CheckBoard[i]
for(j=i+1;19*11;1){
valB=CheckBoard[j]
if(valB!
=valA)
continue
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;
end;
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){
varx,y=mouse.getPos();
vargridA,gridB=GetClearPair(UpdateCheckBoard())
while(gridA){
ClearPair(gridA,gridB)
win.delay(10)
gridA,gridB=GetClearPair(UpdateCheckBoard())
}
mouse.move(x,y,true)
}
winform.show(true)
win.loopMessage();
returnwinform;
3、马甲登录器(一台电脑同时登录多个账号到一个网站)
作者:
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("Cookies",io.fullpath("/web/cookies"))
web_reg.setSzValue("Cache",io.fullpath("/web/Cache"))
web_reg.setSzValue("WindowTitle","AAuto")
//声明API
:
:
Wininet:
=..raw.loadDll("Wininet.dll")
InternetSetOptionOne=Wininet.api("InternetSetOption","int(inthInternet,pointerdwOption,pointerlpBuffer,pointerdwBufferLength)")
//刷新设置
InternetSetOptionOne(39/*_INTERNET_OPTION_SETTINGS_CHANGED*/)
:
:
SendMessage(0xFFFF/*_HWND_BROADCAST*/,0x1A/*_WM_WININICHANGE*/)
//创建web窗体
varwb=web.form(winform,web.UIFLAG_NO3DBORDER/*无边框*//*,web.DLCTL_NO_SCRIPTS禁用脚本*/ )
//还原cookies目录
web_reg.setSzValue("Cookies",web_cookeis)
web_reg.setSzValue("Cache",web_cache)
web_reg.setSzValue("WindowTitle",web_title)
完整代码如下:
importwin;//必须首先导入win窗口支持库
importwin.ui;
importweb;
/*DSG{{*/
varwinform=win.form(parent=...;min=1;bottom=249;scroll=1;text="AAutoForm";right=349;max=1)
winform.add( )
/*}}*/
//导入注册表库
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("Cookies",io.fullpath("/web/cookies"))
web_reg.setSzValue("Cache",io.fullpath("/web/Cache"))
web_reg.setSzValue("WindowTitle","AAuto")
//声明API
:
:
Wininet:
=..raw.loadDll("Wininet.dll")
InternetSetOptionOne=Wininet.api("InternetSetOption","int(inthInternet,pointerdwOption,pointerlpBuffer,pointerdwBufferLength)")
//刷新设置
InternetSetOptionOne(39/*_INTERNET_OPTION_SETTINGS_CHANGED*/)
:
:
SendMessage(0xFFFF/*_HWND_BROADCAST*/,0x1A/*_WM_WININICHANGE*/)
//创建web窗体
varwb=web.form(winform,web.UIFLAG_NO3DBORDER/*无边框*//*,web.DLCTL_NO_SCRIPTS禁用脚本*/ )
//还原cookies目录
web_reg.setSzValue("Cookies",web_cookeis)
web_reg.setSzValue("Cache",web_cache)
web_reg.setSzValue("WindowTitle",web_title)
//打开目标网站
wb.go("
//显示窗体
winform.show(true)
wb.wait("ecranesoft");//等待指定网址,可以使用模式匹配语法
//进入消息循环
win.loopMessage();
4、网页与AAuto程序交互例子
其实有的时候,用网页做软件的界面也是不错的选择,网页有它的灵活性和易用性。
在AAuto中,与网页交互其实很简单,因为AAuto可以与IE中的window.external接口通讯,下面这个例子就是用window.external自定义函数实现了在网页中控制AAuto程序弹出对话框。
preview.gif(11.32K)
2010-7-2415:
59:
58
aau代码:
importwin;//必须首先导入win窗口支持库
importwin.ui;
importwin.ui.menu;
importweb;
importfsys;
/*DSG{{*/
varwinform=win.form(parent=...;min=1;right=640;bottom=351;max=1;text="AAutoForm";border="resizable";scroll=1)
winform.add( )
/*}}*/
varwb=web.form(winform,web.UIFLAG_NO3DBORDER+web.UIFLAG_SCROLL_NO);
wb.external={
showmsg=function(txt)
{
win.msgbox(txt,"AAuto");
returntrue;
}
}
//访问资源中的html文件
wb.go("res:
//"+fsys.getExeFile()+"/res/\res\test.html");
winform.show(true);
win.loopMessage();
returnwb,winform;ort
html代码:
DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http:
//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
//www.w3.org/1999/xhtml">
AAuto
*{
font:
12pxVerdana,Arial,Helvetica,sans-serif;
}
#header{
height:
30px;
}
#header.logo{
height:
30px;
background:
url(logo.gif)4px4pxno-repeat;
}
#main{
padding:
8px;
}
label{
margin:
4px0;
display:
block;
}
#txt{
padding:
4px;
border:
1pxsolid#ccc;
width:
98%;
height:
200px;
}
button{
padding:
4px;
width:
98px;
height:
25px;
background-image:
url(btn.gif);
background-repeat:
no-repeat;
background-position:
lefttop;
border:
0;
}
button.hot{
background-position:
leftbottom;
}