按键精灵5级认证考题添加了考试时候自己遇到的题

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

红色为自己总结的考题,黑色为网上资料在路径为:C:\ajjl.txt文本的每行内容后加上对应的行数,例如:ajjl-第1行.请写出代码(禁止使用命令库)wenben=Plugin.File.OpenFile(c:\ajjl.txt)//打开ajjl.txt文件,以备读写使用CallPlugin.File.SeekFile(wenben,0)//设置文件的当前读写位置ForUBound(hangshu)CallPlugin.File.WriteFile(wenben,hangshu(i)&-第&ii&行&vbcrlf)//向目标文件写入行数并换行i=i+1:ii=ii+1NextCallPlugin.File.CloseFile(wenben)//关闭一个已经打开的文件。文件关闭后,其句柄不再有效EndScript如果鼠标停止动作超过5秒,则执行弹出信息提示框鼠标停止动作,请写出代码GetCursorPosx1,y1//得到鼠标位置Delay5000//等待五秒重新判断鼠标位置,GetCursorPosx2,y2Ifx1=x2andy1=y2thenMessageBox鼠标停止动作EndIf限制鼠标范围在屏幕坐标(200,300)到(500,600)范围内,超出范围则回到边界(鼠标范围限制),请写出代码。x1=200x2=500y1=300y2=600DoGetCursorPosx,yIfxx1orxx2oryy1oryy2Then//当x,y有一个超出范围后,Ifxx1Thenx=x1ElseIfxx2Thenx=x2EndIfIfyy1Theny=y1ElseIfyy2Theny=y2EndIfMoveTox,yEndIfLoop写一个子程序,可以使鼠标从当前的坐标逐点的移动到目的坐标(带轨迹的鼠标移动),请写出代码(要求:轨迹为一条直线)etCursorPosx1,y1//得到鼠标位置坐标//x2,y2为目标坐标Fori=1To100//把x和y等分100份nx=(x2-x1)/100ny=(y2-y1)/100MoveToint(x1+i*nx),int(y1+i*ny)Delay10NextEndSub鼠标按圆型移动,半径为r=100,圆点为(200,200),请写出代码Dimn,x,yMoveTo100,200//确定圆点Forn=0To360x=200-100*cos(n*3.14/180)y=200-100*sin(n*3.14/180)//根据直角三角形公式求两个直角边边长MoveTox,yDelay10NextEndScript1、鼠标按圆型移动,半径为r=100,圆点为(200,200),请写出代码.Dima,x,yMoveTo100,200Fora=0To360x=200-100*cos(a*3.14/180)y=200-100*sin(a*3.14/180)MoveTox,yDelay5NextEndScript1、(前台)区域范围为(100,150)到(200,300)内的所有点是否均为FFFFFF,是则弹出对话框没有其他颜色,否则弹出第一个点的颜色值并退出程序.请写出代码x=100y=150RtColor=Plugin.Color.GetPixelColor(x,y,0)RtColor1=RtColorWhile(y300)x=100While(x200)IfRtColor=FFFFFFThenx=x+1ElseMessageBoxRtColor1ExitScriptEndIfRtColor=Plugin.Color.GetPixelColor(x,y,0)Wendy=y+1WendMessageBox没有其他颜色2、利用多线程对多个记事本的窗口位置进行随机移动.请写出代码RunAppnotepad.exeRunAppnotepad.exeRunAppnotepad.exeDelay2000DimEnvHwnd1HwndEx=Plugin.Window.Search(记事本)Hwnd=Split(HwndEx,|)IfUBound(Hwnd)=0ThenFori=0ToUBound(Hwnd)-1wnd=Clng(Hwnd(i))Hwnd1=wndBeginThread移动Delay100NextEndIfDoDelay1000LoopSub移动Hwnd2=Hwnd1Randomizex=Int(Rnd*500)Randomizey=Int(Rnd*500)MessageBoxx&,&yCallPlugin.Window.Move(Hwnd2,x+100,y+100)EndSub3、筛选出100以内所有个位数加十位数等于10的数,例如82,8+2=10满足条件,请写出代码s=Fori=1To99a=imod10b=int(i/10)If(a+b)=10Thens=s&i&|EndIfNextMessageBoxs4、写一个算法可以将十进制的字符串转成八进制的字符串.例如8-10,请写出代码PublicFunctionDEC_to_OCT(Dec)DEC_to_OCT=DoWhileDec0DEC_to_OCT=DecMod8&DEC_to_OCTDec=Dec\8LoopEndFunctiona=DEC_to_OCT(8)MessageBoxa5、有N个窗口,第一个窗口移动到(0,0)点,其余的窗口根据第一个窗口平铺,窗口不超出屏幕边缘(窗口平铺),请写出代码RunAppnotepad.exeRunAppnotepad.exeRunAppnotepad.exeRunAppnotepad.exeRunAppnotepad.exeRunAppnotepad.exeHwndEx=Plugin.Window.Search(记事本)Hwnd=Split(HwndEx,|)ScreenX=Plugin.Sys.GetScRX()ScreenY=Plugin.Sys.GetScRY()MessageBoxScreenXsRect=Plugin.Window.GetWindowRect(Hwnd(0))MessageBoxsRectxy=Split(sRect,|)x=xy(2)-xy(0)y=xy(3)-xy(1)sx=0sy=0i=0MessageBoxxWhile(Screeny-syy)While(ScreenX-sxx)Delay10CallPlugin.Window.Move(Hwnd(i),Cstr(sx),Cstr(sy))sx=sx+xi=i+1IfiUBound(Hwnd)-1ThenExitScriptEndIfWendsy=sy+ysx=0MessageBoxsyWend写一个子程序,可以使鼠标从当前的坐标逐点的移动到目的坐标(带轨迹的鼠标移动),请写出代码DoCalla(50,50)Calla(800,600)Loopsuba(x,y)DoGetCursorPosx0,y0Ifxx0Theni=1ElseIfxx0Theni=-1ElseIfx=x0Theni=0EndIfIfyy0thenii=1ElseIfyy0thenii=-1ElseIfy=y0thenii=0EndIfMoveRi,iiIfx=x0andy=y0ThenExitdoEndIfLoopEndsub11、随机生成一个1~100之间的整数,玩家可以通过inputbox输入数字,猜对则退出游戏,猜错则提示答案的范围(猜数游戏),请写出代码例如:随机数为:60,用户输入20,程序提示答案范围为:20~100.用户再次输入75,程序提示答案范围为:20~75.用户再次输入60,程序提示猜中,然后退出程序.Randomize答案=int(Rnd*100)+1最小数=1最大数=100数字=InputBox((猜数游戏),输入1~100之间的整数,玩家可以通过输入数字,猜对则退出游戏,猜错则提示答案的范围)数字=int(数字)DoIf数字=答案ThenMsgBox数字&,恭喜答对了EndScriptElseIf数字答案Then最大数=数字ElseIf数字答案Then最小数=数字EndIf数字=InputBox(答案范围为:&最小数&~&最大数)数字=int(数字)Loop13、锁定鼠标位置在(200,300)到(500,600)之间,超出范围则回到边界(鼠标范围锁定),请写出代码Call锁范围(200,300,500,600)Function锁范围(x1,y1,x2,y2)DoGetCursorPosx,yIfxx1orxx2oryy1oryy2ThenIfxx1Thenx=x1ElseIfxx2Thenx=x2EndIfIfyy1Theny=y1ElseIfyy2Theny=y2EndIfMoveTox,yEndIfLoopEndFunction15、获取数组array(10,9,1,5,2,3,4,5,6,11)中最接近平均数的值,请写出代码a=array(10,9,1,5,2,3,4,5,6,11)i=0ForUBound(a)+1ii=ii+a(i)i=i+1Next均值=ii/(UBound(a)+1)i=0ForUBound(a)IfAbs(均值-a(i))Abs(均值-a(i+1))Thenii=a(i+1)ElseIfAbs(均值-a(i))Abs(均值-a(i+1))Thenii=a(i)EndIfi=i+1NextMsgBoxii16、有一个字符串,里面包含一些数字,写一个函数,把这些数字加起来。比如“我30你40他50”结果就是120。请写出代码a=我30你40他50niFori=1ToLen(a)+1IfIsNumeric(Mid(a,i,1))=TrueThenii=ii&Mid(a,i,1)Elseb=b+iiii=0EndIfNextMsgboxb17、遍历字符串A1a2d5m8Qz,取出所有小写字母及数字,并按照与原来相反的顺序拼接成新的字符串,请写出代码MsgBox反提取小写数字(A1a2d5m8Qz)Function反提取小写数字(字符)i=Len(字符)ForLen(字符)If(Asc(mid(字符,i,1))96andAsc(mid(字符,i,1))123)or(Asc(mid(字符,i,1))47andAsc(mid(字符,i,1))58)Then反提取小写数字=反提取小写数字&mid(字符,i,1)EndIfi=i-1NextEndFunction//4、写一个函数,可以让普通窗口(例如记事本)在屏幕内移动,碰到屏幕边缘随机反向移动(类似屏幕保护的汽泡程序),请写出FunctionmoveWin(Hwnd)Dimary,h,w,maxh,maxw,fa,fbScreenW=Plugin.GetSysInfo.GetScreenResolutionX()ScreenH=Plugin.GetSysInfo.GetScreenResolutionY()sRect=Plugin.Window.GetWindowRect(Hwnd)ary=Split(sRect,|)W1=Clng(ary(0)):H1=Clng(ary(1))W2=Clng(ary(2)):H2=Clng(ary(3))w=W2-W1:h=H2-H1fa=true:fa=trueCallPlugin.Window.Active(Hwnd)CallPlugin.Window.Show(Hwnd)DoRandomizeIffaThenW1=Round(Rnd*5)+W1ElseW1=W1-Round(Rnd*5)EndIfIffbThenH1=Round(Rnd*5)+H1ElseH1=H1-Round(Rnd*5)EndIfmaxw=w+W1:maxh=h+H1IfW1=0ThenW1=0fa=trueEndIfIfH1=0ThenH1=

1 / 28
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功