按键精灵3级认证答题4级认证答题5级认证答题6级认证答题

前半部分为问答题 后半部分为选择题
问答题只需要复制单道题到按键精灵中后调试就会看到效果了
选择题是搜索的其他资料 并没有进行整理(紧供参考)
只有自己读懂每句代码的含义后再答题 这样不仅完成答题 还能丰富自己的知识
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
问答题部分
'六、1、写一个子程序,可以改变窗口内的某个子窗口的大小为特定值,子窗口大小随顶层窗口变化而比例变化(提示:改变顶层窗口,判断子窗口大小),请写出代码
Dim 父窗口句柄, 子窗口句柄, 客户区大小大小
Call RunApp("notepad.exe")
Delay 1000
父窗口句柄 = Plugin.Window.Find("Notepad", 0)
子窗口句柄 = Plugin.Window.FindEx(父窗口句柄, 0, "Edit", 0)
TracePrint "查找到的父窗口句柄为:" & 父窗口句柄
TracePrint "查找到的子窗口句柄为:" & 子窗口句柄
Call 比例大小(父窗口句柄, 子窗口句柄, 0.9)
EndScript
Sub 比例大小(父窗口句柄, 子窗口句柄, 比例)
Dim 父边框, 父左1, 父左2, 父右1, 父右2
父边框 = Plugin.Window.GetWindowRect(父窗口句柄)
父左1 = Clng(Split(父边框, "|")(0)) : 父左2 = Clng(Split(父边框, "|")(1))
父右1 = Clng(Split(父边框, "|")(2)) : 父右2 = Clng(Split(父边框, "|")(3))
Call Plugin.Window.Size(子窗口句柄, (父右1 - 父左1) * 比例, (父右2 - 父左2) * 比例)
End Sub
'随机生N(N也为随机数)个字母,将N个字母分别赋值到数组中,数组的大小以最节省空间为标准生成.请写出代码
'六、1、随即输出10个50到100正整数,并从大到小排列(冒泡排序),请写出代码
Dim 随即Int(9), i1, j, Cache, bSwap
Randomize
For i1 = 0 To 9
随即Int(i1) = Int((100 - 50 + 1) * Rnd + 50)
TracePrint i1 & ":" & 随即Int(i1)
Next
For j = 0 To UBound(随即Int) - 1
bSwap = False
For i1 = 0 To UBound(随即Int) - 1
If 随即Int(i1) < 随即Int(i1 + 1) Then '若是递增,则将 < 改为 >
Cache = 随即Int(i1)
随即Int(i1) = 随即Int(i1 + 1)
随即Int(i1 + 1) = Cache
bSwap = True
End If
Next
If bSwap = False Then Exit For
Next
TracePrint "【冒泡排序后输出】"
For i1 = 0 To UBound(随即Int)
TracePrint i1 & ":" & 随即Int(i1)
Next
EndScript
'六、2、利用文本(TXT)模拟一个"数据库",数据库储存人物信息(编号|姓名|年龄|身高),需有对应的函数实现 查询/搜索/删除/增加 等功能(伪数据库),请写出代码
Dim 数据库路径, InputHome, Input查询, Input搜索, Input删除, Input增加, 查询结果, 搜索返回, 搜索

结果, Show搜索, 删除结果
数据库路径 = "C:\档案.txt"
InputHome = InputBox("退出:Q 主页:H" & vbcrlf & vbcrlf & "查询:1 搜索:2 删除:3 增加:4", "主页·请输入对应字符进行相关操作")
Do While InputHome <> "Q" And InputHome <> "q"
If InputHome = "H" Or InputHome = "h" Then
InputHome = InputBox("退出:Q 主页:H" & vbcrlf & vbcrlf & "查询:1 搜索:2 删除:3 增加:4", "主页·请输入对应字符进行相关操作")
ElseIf InputHome = "1" Then
Do
查询结果 = ""
Input查询 = InputBox("退出:Q 主页:H", "查询·请输入编号进行查询", "编号")
If Input查询 = "Q" Or Input查询 = "q" Then : InputHome = "Q" : Exit Do
ElseIf Input查询 = "H" Or Input查询 = "h" Then : InputHome = "H" : Exit Do
ElseIf IsNumeric(Input查询) = True Then
查询结果 = 查询(数据库路径, Input查询)
End If
If 查询结果 <> "" Then MsgBox 查询结果, 65, "查询结果"
Loop
ElseIf InputHome = "2" Then
Do
搜索返回 = "" : Show搜索 = ""
Input搜索 = InputBox("退出:Q 主页:H" & vbcrlf & vbcrlf & "可模糊搜索到编号、姓名、年龄、身高字段", "搜索·请输入关键字进行搜索", "关键字")
If Input搜索 = "Q" Or Input搜索 = "q" Then : InputHome = "Q" : Exit Do
ElseIf Input搜索 = "H" Or Input搜索 = "h" Then : InputHome = "H" : Exit Do
Else
搜索返回 = 搜索(数据库路径, Input搜索)
End If
If 搜索返回 <> "" Then
搜索结果 = Split(搜索返回, ",")
For i = UBound(搜索结果) - 1 To 0 Step - 1
Show搜索 = Show搜索 & 搜索结果(i) & vbCrLf
Next
MsgBox Show搜索, 65, "搜索结果"
End If
Loop
ElseIf InputHome = "3" Then
Do
查询结果 = "" : 删除结果 = ""
Input删除 = InputBox("退出:Q 主页:H", "删除·请输入编号进行删除", "编号")
If Input删除 = "Q" Or Input删除 = "q" Then : InputHome = "Q" : Exit Do
ElseIf Input删除 = "H" Or Input删除 = "h" Then : InputHome = "H" : Exit Do
ElseIf IsNumeric(Input删除) = True Then
查询结果 = 查询(数据库路径, Input删除)
End If
If 查询结果 <> "" Then 删除结果 = MsgBox(查询结果, 68, "确定要删除此条数据?")
If 删除结果 = 6 Then 删除 数据库路径, Input删除
Loop
ElseIf InputHome = "4" Then
Do
Input增加 = InputBox("退出:Q 主页:H" & vbcrlf & vbcrlf & "格式:姓名|年龄|身高" & vbcrlf & "例如:李雷|18|1.52", "

增加·请输入要增加的一条数据")
If Input增加 = "Q" Or Input增加 = "q" Then : InputHome = "Q" : Exit Do
ElseIf Input增加 = "H" Or Input增加 = "h" Then : InputHome = "H" : Exit Do
ElseIf UBound(Split(Input增加, "|")) = 2 Then
增加 数据库路径, Input增加
End If
loop
ElseIf InputHome = "Q" Or InputHome <> "q" Then : Exit Do
Else
InputHome = InputBox("退出:Q 主页:H" & vbcrlf & vbcrlf & "查询:1 搜索:2 删除:3 增加:4", "主页·请输入对应字符进行相关操作")
End If
Loop
EndScript
Function 查询(文本路径, 编号)
Dim fso, myfile, i, flag, tempp
flag = 1
Set fso = CreateObject("scripting.FileSystemObject")
If fso.FileExists(文本路径) Then
Set myfile = fso.openTextFile(文本路径, 1, false)
Else
flag = 0
End If
For i = 1 To 编号 - 1
If Not myfile.AtEndOfLine Then
myfile.SkipLine
tempp = myfile.Line
End If
Next
If flag = 1 Then
If Not myfile.AtEndOfLine Then
查询 = myfile.ReadLine
Else
查询 = "编号不存在!"
End If
myfile.close
Else
查询 = "文件不存在!"
End If
Set fso = Nothing
End Function
Function 搜索(文本路径, 关键字)
Dim ForReading, ForWriting
ForReading = 1 : ForWriting = 2 : 搜索 = ""
Dim objFSO, objFile, strLine, strNewFile
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(文本路径, ForReading)
Do Until objFile.AtEndOfStream
strLine = objFile.Readline
If Instr(1, strLine, 关键字) > 0 Then 搜索 = strLine & "," & 搜索
TracePrint "搜索=" & 搜索
strNewFile = strNewFile & strLine & vbcrlf
Loop
objFile.Close
Set objFile = objFSO.OpenTextFile(文本路径, ForWriting)
objFile.Write strNewFile
objFile.Close
Set objFSO = Nothing
End Function
Sub 删除(文本路径, 编号)
Dim ForReading ,ForWriting
ForReading = 1
ForWriting = 2
Dim objFSO,objFile,strLine,strNewFile
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(文本路径,ForReading)
Do Until objFile.AtEndOfStream
strLine = objFile.Readline
If CInt(编号) = objFile.Line - 1 or CInt(编号) = 0 Then
strNewFile = strNewFile
Else
strNewFile = strNewFile & strLine & vbcrlf
End If
Loop
objFile.Close
Set objFile = objFSO.OpenTextFile(文本路径,ForWriting)
objFile.Write strNewFile
objFile.Close
Set objFSO = Nothing
End Sub
Sub 增加(文本路径, 文本内容)
Dim ForReading ,ForWriting
ForReading = 1 : ForWriting = 2
Dim objFSO, objFile, strLine,

strNewFile
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(文本路径, ForReading)
Do Until objFile.AtEndOfStream
strLine = objFile.Readline
strNewFile = strNewFile & strLine & vbcrlf
Loop
TracePrint objFile.Line
strNewFile = strNewFile & objFile.Line & "|" & 文本内容 & vbcrlf
objFile.Close
Set objFile = objFSO.OpenTextFile(文本路径, ForWriting)
objFile.Write strNewFile
objFile.Close
Set objFSO = Nothing
End Sub
EndScript
'六、3、动态监控文本内容,当文本内容增加时(文本内容不会减少)自动输出增加的内容到所有标题包含"接收"关键字的文本(批量消息发送器),请写出代码
'六、4、写一个子程序,可以改变窗口内的某个子窗口的大小为特定值,子窗口大小随顶层窗口变化而比例变化(提示:改变顶层窗口,判断子窗口大小),请写出代码
'六、5、利用函数输出杨辉三角,需要的参数为杨辉三角的行数,请写出代码
'六、杨辉三角百度说明:https://www.360docs.net/doc/d118543767.html,/view/7804.htm

'五:1、写出三种计算颜色相似度的算法,函数返回值为相似度.请写出代码
MsgBox 颜色相似度1("Fffffa", "FFFFFF"),64,"颜色相似度1"
MsgBox 颜色相似度2("Fffffa", "FFFFFF"),64,"颜色相似度2"
MsgBox 颜色相似度3("Fffffa", "FFFFFF"),64,"颜色相似度3"
Function 颜色相似度1(当前颜色, 对比颜色)
Call Plugin.Color.ColorToRGB(当前颜色, R1, G1, B1)
Call Plugin.Color.ColorToRGB(对比颜色, R2, G2, B2)
颜色相似度1 = 1 - round((abs((R1 - R2) / 255) + abs((G1 - G2) / 255) + abs((B1 - B2) / 255)) / 3, 3)
End Function
Function 颜色相似度2(当前颜色, 对比颜色)
Call Plugin.Color.ColorToRGB(当前颜色, R1, G1, B1)
Call Plugin.Color.ColorToRGB(对比颜色, R2, G2, B2)
颜色相似度2 = 1 - round((abs(R1 - R2) + abs(G1 - G2) + abs(B1 - B2)) / 255 / 3, 3)
End Function
Function 颜色相似度3(当前颜色, 对比颜色)
Call Plugin.Color.ColorToRGB(当前颜色, R1, G1, B1)
Call Plugin.Color.ColorToRGB(对比颜色, R2, G2, B2)
颜色相似度3 = 1 - round((abs(R1 / 255 - R2 / 255) + abs(G1 / 255 - G2 / 255) + abs(B1 / 255 - B2 / 255)) / 3, 3)
End Function
'五:2、(前台)区域范围为(100,150)到(200,300)内的所有点是否均为"FFFFFF",是则弹出对话框"没有其他颜色",否则弹出第一个点的颜色值并退出程序. 请写出代码
Dim x, y, RtColor
x = 100 : y = 150
Do While y < 301
For x = 100 To 200
RtColor = Plugin.Color.GetPixelColor(x, y, 0)
If RtColor <> "FFFFFF" Then Exit do
Next : y = y + 1
Loop
If RtColor <> "FFFFFF" Then
MessageBox X & " , " & Y & "坐标点颜色为:" & RtColor
Else
MessageBox "没有其他颜色"
End If
EndScript
'五:3、写一个函数,要求:返回一个数值范围内所有偶数之和。参数1、参

数2:整数型,数字 提示:For循环与VBS命令函数应用。
TracePrint 求偶数之和(1, 61)
TracePrint 求偶数之和(3, 19)
TracePrint 求偶数之和(0, 83)
TracePrint 求偶数之和(2, 1)
EndScript
Function 求偶数之和(参数1, 参数2)
Dim 差, i
求偶数之和 = 0 : 差 = Abs(参数1 - 参数2)
If 差 mod 2 = 1 Then : 差 = 差 - 1 : End If
For i = 0 To 差 / 2 - 1
求偶数之和 = 求偶数之和 + 差 - i * 2
'TracePrint "i=" & i & " 求偶数之和=" & 求偶数之和 & " 差=" & 差 - i * 2
Next
End Function
'五:4、遍历字符串"A1a2d5m8Qz",取出所有小写字母及数字,并按照与原来相反的顺序拼接成新的字符串,请写出代码
Dim Str, k, XiaoXie, 新字符串
Str = "A1a2d5m8Qz"
For k = 1 To Len(Str)
XiaoXie = LCase(mid(Str, k, 1))
If XiaoXie = mid(Str, k, 1) Then
新字符串 = XiaoXie & 新字符串
End If
Next
TracePrint 新字符串
'五:5、写一个脚本,要求:在画图工具中画一个渐变放大的多边形(大于4边)漩涡效果图。 提示:For循环的应用。
Call 画多边漩涡(400, 200, 50, 7) //五边形
EndScript
Sub 画多边漩涡(x, y, r, n)
//x 圆心横坐标 y 圆心纵坐标
//r 半径 n 多边形的边数
Const PI = 3.1415926
Dim x1, y1 //起点坐标
dim x2, y2 //下一个点坐标
x1 = x
y1 = y - r
Dim t
t = PI
For i = 1 To 30
If i > 1 Then
MoveTo x1, y1
Delay 20
LeftUp 1
End If
MoveTo x1, y1
Delay 20
LeftDown 1
t = t - pi * 2 / n
x2 = x + int(r * sin(t))
y2 = y + int(r * cos(t))
//更新起点坐标
x1 = x2
y1 = y2
r = r + 2
Next
End Sub

'五:1、写一个脚本,要求:在画图工具中画一个渐变放大的圆形漩涡效果图。提示:cos函数与sin函数应用。
Call 画漩涡(420, 280)
EndScript
Function 画漩涡(起点X, 起点Y)
Dim HX, HY, n
n = 1
While HX < 600
MoveTo HX, HY : Delay 3
HX = 起点X + cos(n) + n * sin(n)
HY = 起点Y + sin(n) - n * cos(n)
n = n + 0.1
Wend
End Function
'五:2、随机生成一个1~100之间的整数,玩家可以通过函数InputBox命令输入数字来猜测那未知的随机数字,猜对则退出游戏,猜错则提示答案的范围(猜数游戏),请写出代码:
Dim 随机, 猜测, 下限, 上限, 次数
Randomize
随机 = Int(100 * Rnd + 1)
TracePrint "随机=" & 随机
下限 = 1 : 上限 = 100
猜测 = Cint(InputBox("请输入你的猜测", "猜数字游戏"))
For 次数 = 1 To 99 : Delay 100
If 猜测 < 随机 and 猜测 > 下限 Then : 下限 = 猜测
ElseIf 猜测 > 随机 and 猜测 < 上限 Then : 上限 = 猜测
ElseIf 猜测 = 随机 Then
MsgBox "总共" & 次数 &

"次猜中了 八戒 看来今年你又要涨价了!", 64, "程序·提示"
Exit For
End If
猜测 = Cint(InputBox("答案范围为:" & 下限 & "~" & 上限, "程序·提示 还可再猜" & 100 - 次数 & "次 "))
Next
EndScript
'五:3、筛选出100以内所有个位数加十位数等于10的数,例如82,8+2=10满足条件,请写出代码
Dim Text, T, G, S
For T = 0 To 99
G = T Mod 10
S = Int(T / 10)
If (G + S) = 10 and Text <> "" Then : Text = Text & "," & T
ElseIf (G + S) = 10 and Text = "" Then : Text = T
End If
Next
MsgBox "100以内所有个位数加十位数等于10的数:" & VbCrlf & VbCrlf & Text, 64, "程序·提示"
EndScript
'五:4、写一个函数,已知一段坐标信息的字符串为:"260,270|290,260|310,230|320,200,10|300,150|280,150,10|270,130|250,130",计算得出离185,246坐标最近的一组坐标。提示:For循环与数组应用。
TracePrint 坐标最近判断("260,270|290,260|310,230|320,200|300,150|280,150|270,130|250,130", "185,246")
EndScript
Function 坐标最近判断(信息, 坐标)
Dim Arr, Str, StrX, StrY, Ping, a, b, c, i
Arr = Split(信息, "|") '信息分离
Str = Split(坐标, ",") '坐标分离
StrX = Clng(Str(0)) : StrY = Clng(Str(1)) '提取坐标X与Y值
For i = 0 To UBound(Arr) '勾股定理计算每个坐标到指定坐标的平方值
If i = 0 Then
Ping = (Abs(Clng(Split(Arr(i), ",")(0)) - StrX)) ^ 2 + (Abs(Clng(Split(Arr(i), ",")(1)) - StrY)) ^ 2
Else
Ping = Ping & "/" & (Abs(Clng(Split(Arr(i), ",")(0)) - StrX)) ^ 2 + (Abs(Clng(Split(Arr(i), ",")(1)) - StrY)) ^ 2
End If
Next
TracePrint Ping
b = Split(Ping, "/") : a = 0 : c = b(0)
TracePrint c
For i = 1 To UBound(b)
TracePrint "b(" & i & ")=" & b(i)
If Clng(b(i)) < Clng(c) Then : c = b(i) : a = i : End If
Next
坐标最近判断 = Arr(a)
End Function
'五:5、写一个算法可以将十进制的字符串转成八进制的字符串.例如"8"->"10",请写出代码
Dim 十进数
十进数 = InputBox("输入你想转换的十进制数字", "十转八进制·算法", "")
MsgBox "十进制数:"&十进数 & " → 八进制数:" & 十转八进制算法(十进数), 64, "程序·提示"
EndScript
Function 十转八进制算法(十进数)
十转八进制算法 = ""
While 十进数 > 0
十转八进制算法 = 十进数 Mod 8 & 十转八进制算法
十进数 = 十进数 \ 8
Wend
End Function
'四:1、切换所有标题包含"Internet Explorer"的窗口,请写出代码
Dim HwndEx, MyArray, i
HwndEx = ""
HwndEx = Plugin.Window.Search("Internet Explorer")
If HwndEx <> "" Then
MyArray = Split(HwndEx, "|")
For i = 0 To UBound(MyArray) - 1 '模糊搜索最后一个值是空的所以忽略
Call Plugin.Window

.Top(Clng(MyArray(i)), 0)
Call Plugin.Msg.Tips("当前共有" & UBound(MyArray) & "个窗口包含“Internet Explorer”" & VbCrlf & "切换为第" & i + 1 & "个窗口")
Delay 1500
Call Plugin.Window.Top(Clng(MyArray(i)), 1)
Next
Else
Call Plugin.Msg.Tips("当前没有包含“Internet Explorer”的窗口")
End If
EndScript
'四:2、规定区域内随机输出一个日期,例如 "2005-01-01"到"2012-03-31"之间的某一天,请给出代码
Do
TracePrint "随机日期=" & 随机产生日期("2005-01-01", "2012-03-31")
Delay 1500
loop
EndScript
Function 随机产生日期(起始年月日, 终止年月日)
Dim 间隔, 随机数
间隔 = DateDiff("d", 起始年月日, 终止年月日)
随机数 = Int((间隔 + 1) * Rnd)
随机产生日期 = DateAdd("d", 随机数, 起始年月日)
End Function
'四:3、生成[2,6]个[65,90]之间的偶数,并将生成的数转为与指定的ANSI 字符代码相对应的字符,最终合并结果MessageBox 弹出。请给出代码。
Dim 字母个数
Do
Randomize
字母个数 = Int((6 - 3 + 1) * Rnd + 3)
MessageBox 随机偶数ANSI码(字母个数, 65, 90)
Delay 500
loop
EndScript
Function 随机偶数ANSI码(字符数, 下限, 上限)
Dim 随机数值, 字母Asc
Randomize
For 字符数
随机数值 = int((上限 - 下限 + 1) * Rnd + 下限)
If 随机数值 mod 2 = 1 Then 随机数值 = 随机数值 - 1
If 随机数值 = 64 Then 随机数值 = 66
字母Asc = 字母Asc & Chr(随机数值)
Next
随机偶数ANSI码 = 字母Asc
End Function
'三:1、写出用goto命令循环十次的过程
Dim a1
a1 = 10
Rem 从这里开始
TracePrint "倒计次了!" & a1
a1 = a1 - 1
If a1 > 0 Then Goto 从这里开始
EndScript
'三:2、(前台)依次按下"AJJL"四个键,中间延迟100毫秒,循环10次
Dim p
For p = 1 To 10
KeyPress 65, 1
Delay 100
KeyPress 74, 1
Delay 100
KeyPress 74, 1
Delay 100
KeyPress 76, 1
Delay 100
Next
EndScript
'三:3、有数字 a 和 数字 b ,分别弹出其 加减乘除 四个结果.(假设a=4,b=2),请给出代码
Dim a, b
a = 4 : b = 2
MessageBox a + b
MessageBox a - b
MessageBox a * b
MessageBox a / b
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
以下是2、3、4级部分选择题 较乱没有整理

按键精灵支持jpg 格式截屏 按键精灵可以调用VBS
8常数 VbOk 的值为?
msgbox函数有以下返回值
常数 值 按钮
vbOK 1 确定
vbCancel 2 取消
vbAbort 3 放弃
vbRetry 4 重试
vbIgnore 5 忽略
vbYes 6 是
vbNo 7 否


11、UserVar Var1=DropList{"选项1":"值1"|"选项2":"

值2"|"选项3":"值3"|"选项4":"值4"}=n "设置内容",问初始参数Var1="值2"时,n是多少?
解释://格式: UserVar 变量=DropList{选项0:值0|选项1:值1|选项2:值2}=默认显示的选项编号 {注释}
这个命令预先设定多个变量值,用户可在基面通过下拉方式进行选择 , 特别提醒:默认显示的选项编号从0开始。

14、以下命令可以获取当前窗口所在屏幕位置精确坐标的是?GetClientRect字符串型,客户区大小注
返回为:客户区窗口左角X坐标|客户区窗口左上角Y坐标|客户区窗口宽度|客户区窗口高度

15、假如a="123abc456",b="abc123def",c="abc,d="123",以下返回值正确的是?

17、以下哪一个函数返回值数据类型与其他三个不一样?

18、关于自定义变量的描述以下哪一个是正确的?

19、Join命令的参数类型是?
Join(list[,delimiter])
list 必选。包含要联接的子字符串一维数组。
delimiter 可选。在返回字符串中用于分隔子字符串的字符。如果省略,将使用空字符 ("")。
如果 delimiter 是零长度字符串,则在同一列表中列出全部项,没有分界符。


20、选出返回值与其他三种不一样的选项。

21、True的值是?
TracePrint True -1
TracePrint False 0
TracePrint CBool(- 1 ) -1
TracePrint CBool(1) -1
TracePrint CBool(0) 0
TracePrint CBool(2) -1
TracePrint CBool(- 2 ) -1
true,false是bool布尔型.个人认为这两个是代表对立的两面,如汉字的真,假.你说真假是几?
实体书上说true输出值-1,false是0

22、下列语句中无法达到无限循环效果的是?

24、由RGB分量分别为(50,50,50)的颜色值得到的16进制颜色值为?
Color = Plugin.Color.GetRGB(50, 50, 50)
msgbox "得到16进制颜色值:" & color
323232

3、Set 语句的含义是? D. 将对象引用赋给变量或属性
4、以下命令哪个不属于按键命令? D. StopScript
6、以下无法获取句柄的命令是?b
A. Foreground
B. Active
C. Search
D. MousePoint

9、False的值是? A. 0

14、返回已添加指定时间间隔的日期应使用下列哪一个函数?c
A. DatePart 函数 返回给定日期的指定部分。
B. DateDiff 函数 返回两个日期之间的时间间隔
C. DateAdd 函数 返回已添加指定时间间隔的日期
D. Date 函数 返回表达式,此表达式已被转换为 Date 子类型的 Variant

7、以下哪1个返回值是字符串 b
A len("anjian")
b "anjian"&"vrbrothers"
c "10"-1
d clng("520")

20、以下无法获取句柄的命令是? c
A. MousePoint 得到鼠标指向的窗口句柄返 回 值 整数型,窗口句柄
B. Search 遍历符合窗口标题的句柄保存到数值串里返 回 值 字符串型,句柄数值串
C. Active 激活窗口 返 回 值 无
D. Foreg

round得到当前最前面的窗口句柄返 回 值 整数型,窗口句柄

23.Text = Plugin.File.ReadINI("Command", "Val", "C:Config.ini")

24、 以下哪一个命令的功能是设置屏幕分辨率?
A. SetCLB 设置剪切板内容
B. GetScRY 获得屏幕分辨率高度
C. SetSc 命令功能 设置屏幕分辨率/颜色质量
D. GetScDep 命令功能 获得屏幕色深度(颜色质量)
TracePrint IsNumeric ("VrBrothers")返回 Boolean 值指明表达式的值是否为数字。 0 flase
TracePrint IsNumeric (VrBrothers) -1

MyTime1 = Second(Time)
MyTime2=Hour(Time)
MyTime3 = Minute(Time)
MyTime4 = Now(Time) now无效
MsgBox MyTime1
MsgBox MyTime2
MsgBox MyTime3
4,以下哪个事件是最先响应的?
A. OnScriptLoad 加载
B. https://www.360docs.net/doc/d118543767.html,bel1.Click 角本不加载完成如何能实现界面点击后响应你的脚本你的脚本代码呢
C. OnScriptExit
D. OnThreadExit

5,PrintScreen命令支持那种格式截图。A
A. jpg
B. gif
C. TIF
D. png

1、下列语句中无法达到无限循环效果的是?B
A. While True : Wend 只要指定的条件为 True,则会重复执行While和Wend之间的语句

B. For i = True To True : Next
C. Do : Loop 可以循环
D. Do While True : Loop

Do While True
MsgBox A
Loop 按键精灵奇怪现象点的多了快了就不跳出来方框了!

3、VarType 函数的作用是? b
A. 在对话框中显示消息,等待用户单击按钮,并返回一个值指示用户单击的按钮
B. 返回指示变量子类型的值
C. 计算一个表达式的值并返回结果
D. 返回一个字符串,提供有关变量的 Variant 子类型信息
msgbox VarType(1)//整型子类型2
msgbox VarType(1.1)//双精度子类型5
msgbox VarType("2011-01-01")//字符串子类型8
msgbox VarType(a)//初始化(默认)0
vbEmpty 0 未初始化(默认)
vbNull 1 不包含任何有效数据
vbInteger 2 整型子类型
vbLong 3 长整型子类型
vbSingle 4 单精度子类型
vbDouble 5 双精度子类型
vbCurrency 6 货币子类型
vbDate 7 日期子类型
vbString 8 字符串子类型
vbObject 9 对象
vbError 10 错误子类型
vbBoolean 11 Boolean 子类型
vbVariant 12 Variant (仅用于变量数组)
vbDataObject 13 数据访问对象
vbDecimal 14 十进制子类型
vbByte 17 字节子类型
vbArray 8192 数组


4.QUI输入框控件返回值的变量类型是什么类型?变体型?字符串?
你用typename查看下就知道了,返回的是字符串型
在大型脚本的设计中,以下哪一个命令不推荐使用 GOTO

\\\\\、判断数字a是否为3的倍数或者以3为尾数,是则弹出信息提示框,请给出代码
If a mod 3 =0 or (a-3) mod 10 = 0 then
msgbox "zxc"
end if



2、(后台)判断某句柄为hwnd的窗口的窗口坐标(50,100)处颜色是否为"FFFFFF",是

则在这个点按下鼠标左键,请给出代码

Hwnd=331814
a = Plugin.BkgndColor.GetPixelColor(hwnd, 50,100)

b=hex(a)
MsgBox b
If b = "FFFFFF" Then
MsgBox "颜色是FFFFFF"
Else
MsgBox "颜色BU是FFFFFF"
End If



//下面这句在屏幕区域范围内截图保存到(内存)里,以备后面调用。
Call Plugin.ColorEx.PrintScreen(0, 0, 1024, 768)

//下面这句在屏幕区域范围内按方式0,查找颜色,返回左上角第一点颜色位置坐标
XY = Plugin.ColorEx.FindColor(0, 0, 1024, 768, "0000FF", 1, 0)
//下面这句用于分割字符串
ZB = InStr(XY, "|")
//下面这句将字符串转换成数值
X = Clng(Left(XY, ZB - 1)): Y = Clng(Right(XY, Len(XY) - ZB))

//释放屏幕截图信息时请使用以下命令
Call Plugin.ColorEx.Free()
1. 线程只能用线程ID结束

2我的命令库"可以使用API函数

3 "我的命令库"中不可以使用环境变量

A. 一个子程序一般不可以改成函数,与调用规则有关 (可以改成函数)
D.函数可以进行递归运算
B. 子程序和函数可以嵌套使用

C. 一个函数一般不可以改成子程序,与调用规则有关 ( 有返回值的不可以改成函数)

4.任何注释在编译时都会被去除


For intX = 0 To 15 //这句是intX从0自加到15
intX = intX + 1 //这句是intX自加1 //当这两句一起发挥作用的时候,intX在每轮循环中就自加2了。
intY = intY + 1
Next

循环次数是8,x是16但是INTY的值是8.
11、关于自定义变量的描述错误的是? C
//A. 自定义变量可以在脚本完全启动后读取
//B. 自定义变量可以在脚本中重新赋值
//C. 自定义变量可以在脚本载入事件中读取
//D. 自定义变量可以在脚本退出事件中读取

13、GetCursorShape命令有几种获取鼠标形状的方式?
var = GetCursorShape(1)
var = GetCursorShape(0)
是两种

8下列哪一个表示十六进制整数的方法是正确的? C
A. "&H0031D92A"
B. 0031D92A
C. &H0031D92A
D. "0031D92A"
10、创建一个对象需要用到的命令是? D
A. GetObject 返回对文件中 Automation 对象的引用。
B. IsObject 返回 Boolean 值指明表达式是否引用了有效的 Automation 对象。
语法

C. Set 将对象引用赋给变量或属性。
D. CreateObject 创建并返回对 Automation 对象的引用。
4、关于字符串中存在字符引号的描述错误的是?A
A. 可以用一个引号表示
B. 可以用两个引号表示 若字符串中有双引号,例如ABD"XYZ , " " 则用连续两个双引号表示,即:"ABD""XYZ" , """ """。
C. 可以用chr(34)拼接表示 chr(34)是双引号 & chr(34)是连接双引号chr(34)chr(34)" " chr(34)chr(34)
D. 可以用chr(&H22)拼接表示 十六进制的chr(&H22) 十进制的chr(34) 都是双引号


4、以下哪一个命令可

以清空对象Spk? D
A. set Spk= CreateObject("SAPI.SpVoice")
B. Set Spk= False
C. Spk.Close
D. Set Spk= Nothing
Nothing 停止 objectvar 与任何指定对象的关联。当没有其他变量引用 objectvar 原来所引用的对象时,如将其赋为 Nothing 会释放与该对象所关联的所有系统和内存资源。

14、关于QUI描述错误的是? D
A. QUI内的控件值不可以在主线程内改变
B. QUI内的控件值可以在控件事件内改变
C. QUI经过设计可以有一个漂亮的界面
D. QUI可以添加本身没有的控件
2对网页插件和窗口插件描述错误的是 A
A窗口插件不能再WQM中使用
B网页插件只能在WQM中使用
C窗口插件可以作用于任意窗口
D网页插件和窗口插件可以配合使用

9、关于QUI输入框的描述哪个是错误的?A
A. 可以在事件外修改输入框的背景颜色
B. 可以在事件中修改输入框的是否显示 正确
C. 可以在事件外获取输入框的值
D. 可以在事件中修改输入框的是否有效 正确

13、对于按键的功能扩展,不可以用以下哪个方式?a
A. 调用函数接口未知的DLL
B. 使用其他提供的插件 这个是可以调用的
C. 使用VB/VC制作插件
D. 使用CMD或VBS命令


以下对结构的描述哪一个是错误的? D
A. 顺序结构是最基本的结构
B. 跳转结构和子程序混用可能陷入消耗内存的死循环
C. 控制结构和循环结构可以嵌套使用
D. 控制结构和顺序结构混用可能陷入消耗内存的死循环

17、关于KeyPress命令第一个参数的描述哪个是正确的? B
A. 只能传递按键码
B. 可以传递按键码或者字符串
C. 不可以使用变量
D. 只能传递字符串
10、以下哪一个API命令可以运行指定路径的程序?c
A. GetDesktopWindow
B. ShowWindow
C. ShellExecute
D. SetLayeredWindowAttributes
15、关于数组与字符串描述错误的是?c
A. 字符串和数组可以配合使用
B. 数组元素可以是字符串
C. 多维数组的元素只能是字符串
D. 理论上数组元素的传递可以用字符串代替
以下哪一种方式不能在 外部 自定义 脚本 内部 变量?B
A. 使用OCX界面 可以自定义脚本内部变量
B. 使用环境变量 环境变量仍然是在脚本内部改变的哦 环境变量SHI内部变量
C. 使用QUI界面 可以自定义脚本内部变量
D. 使用外部储存文件(例如文本/数据库等)

要调用API的话,必须能够接收返回值,也就是说要存在相应的数据类型来存放返回值。

4、关于在按键中直接使用API,以下哪个说法是正确的?B
A. 可以传指针
B. 只能使用参数和返回值是数字或者字符串的API
C. 可以传地址
D. 任意的API都可以使用

5、关于子程序的描述错误的是?C
A. 函数可以代替子程序的作


B. 应用多线程时需要用到子程序
C. 2个子程序之间可以任意跳转(goto)
D. 子程序内定义的变量是局部变量
7、判断一个字符串是否为数字可以使用以下哪个函数?A
A. IsNumeric
B. IsArray
C. IsNull
D. IsDate
8、以下描述错误的是?A
A. 脚本内子程序数量越少运行速度越快
B. 脚本内增加注释可以提高代码的可读性
C. 获得字符串长度的函数是len,获得数组最大可用下标的函数是Ubound
D. 程序内可以定义多个环境变量
9、以下哪一种方法可以在线程中传递数组?C
A. 其他三种方法都不可以
B. 直接传递数组
C. 将数组合成字符串,再把环境变量字符串传递到线程中
D. 将数组定义成环境变量 不支持数组定义为环境变量
23、以下哪个对Select命令的描述是错误的?A
A. Select支持判断语句(例如:a>0)
B. Select是一种选择结构
C. Select可以有无数个分支
D. Select可以嵌套其他判断语句使用
24、关于后台坐标的描述,哪一个是不正确的?C
A. 后台坐标可以在后台命令中使用
B. 后台坐标指的是窗口内的某个坐标
C. 后台坐标和前台坐标没有对应的计算关系
D. 后台坐标的起点等同于窗口客户区的起点
25、关于子程序描述错误的是? D
A. 子程序调用可以不使用Call关键字
B. 子程序使用恰当可以优化程序结构
C. 子程序使用恰当可以缩短代码
D. 使用子程序的目的是让脚本更加智能


22、一般后台多开脚本是通过什么技术手段实现的?D
A. 前台+API
B. 后台+API 是错误的
C. 前台+多线程
D. 后台+多线程

14.关于环境变量描述错误的是? B
A. 环境变量在程序未完全关闭前不会自动清空
B. 环境变量推荐在各个线程序内同时任意使用 不推荐
C. 环境变量可以跨线程序使用
D. 环境变量可以在同一个按键精灵或者小精灵中跨脚本使用



15、关于环境变量的描述,哪个是错误的?A
A. 环境变量的类型可以是数组 不支持数组定义为环境变量
B. 环境变量的值可以改变
C. 环境变量可以传入到线程中
D. 环境变量可以赋值给一般变量 DimEnv 定义环境变量 命令功能 定义环境变量 命令参数 变量名
备注1、在子程序里定义变量不可以为环境变量 2、不支持数组定义为环境变量

2、脚本中只有一行代码DimEnv a:MsgBox a,弹出的值为3,可能的原因是?B

A. 程序出错
B. 其他脚本中给环境变量a赋值了 将两个脚本DIMENV A:A=3 另一个调试DimEnv a:MsgBox a 环境变量仍然是在脚本内部改变的哦
C. 这种情况不会出现
D. a的默认值为3
1、以下代码在事件触发时弹出的a的值为? B
UserVar a=0 "设置内容

"
Sub OnScriptLoad()
MsgBox a
End Sub
A. 不会弹出
B. 空 脚本保存后退出
C. 0

15、对Eval和Execute命令的描述以下哪一个是不正确的?A
A. Eval命令可以用Execute命令代替
B. 两个命令都可以执行字符串表达式
C. Eval命令的描述为:计算一个表达式的值并返回结果
D. Execute命令的描述为:对指定的字符串执行正则表达式搜索


[result = ]Eval(expression)参数result可选项。 是一个变量,用于接受返回的结果。如果未指定结果,应考虑使用 Execute 语句代替。
在 VBScript 中,x = y 可以有两种解释。第一种方式是赋值语句,将 y 的值赋予 x。第二种解释是测试 x 和 y 是否相等。
如果相等,result 为 True;否则 result 为 False。Eval 方法总是采用第二种解释,而 Execute 语句总是采用第一种。


Eval 函数 计算一个表达式的值并返回结果。
Execute 方法 对指定的字符串执行正则表达式搜索

21、默认情况下假设Weekday函数的返回值为6,那么这代表是星期几?C
A. 4
B. 7
C. 5
D. 6






关于线程停止事件子程序描述正确的是?D
A. 线程停止事件子程序会在对应线程序停止时触发 选这个是错误的
B. 线程停止事件子程序可以启动新的线程
C. 线程停止事件子程序可以判断是哪个线程停止了
D. 线程停止事件子程序会在任意线程停止时触发 这个是对的

【网游通用】技能循环释放写法(总结)


【写法一】
思路:多线程独立循环,但不实用,如果技能多大几十个,十多个线程独立循环不解释...


那么,不用多线程不妨试试下面的写法!
【写法二】
思路:DateDiff
技能1释放延时 = 1 '单位:秒
技能2释放延时 = 3
技能1时间初值 = time
技能2时间初值 = time
Do
技能1时间差 = DateDiff("s", 技能1时间初值, time)
TracePrint 技能1时间差
If 技能1时间差 = 技能1释放延时 Then
技能1时间初值 = time
KeyPress "1", 1 '技能键
End If
技能2时间差 = DateDiff("s", 技能2时间初值, time)
TracePrint 技能2时间差
If 技能2时间差 = 技能2释放延时 Then
技能2时间初值 = time
KeyPress "2", 1 '技能键
End If
Delay 10
Loop

【写法三】
思路:Timer
技能1释放延时 = 0.2 '单位:秒
技能2释放延时 = 0.5
技能1时间初值 = timer
技能2时间初值 = timer
Do
If Timer - 技能1时间初值 >= 技能1释放延时 Then
技能1时间初值 = Timer
KeyPress "1", 1 '技能键
End If
If Timer - 技能2时间初值 >= 技能2释放延时 Then
技能2时间初值 = Timer
KeyPress "2", 1 '技能键
End If
Delay 10
Loop

【写法四】
思路:Timer 和 mod
技能1释放延时 = 1 '单

位:秒 要求:必须整数(非0)
技能2释放延时 = 5
技能1时间初值 = timer
技能2时间初值 = timer
Do
If (timer - 技能1时间初值 + 1) mod 技能1释放延时 = 技能1释放延时-1 Then
KeyPress "1", 1 '技能键
End If
If (timer - 技能2时间初值 + 1) mod 技能2释放延时 = 技能2释放延时-1 Then
KeyPress "2", 1 '技能键
End If
Delay 100
Loop
1、生成[2,6]个[65,90]之间的偶数,并将生成的数转为与指定的ANSI 字符代码相对应的字符,最终合并结果MessageBox 弹出。请给出代码。
2、切换所有标题包含"Internet Explorer"的窗口,请写出代码
3、规定区域内随机输出一个日期,例如 "2005-01-01"到"2012-03-31"之间的某一天,请给出代码


1、写一个算法可以将十进制的字符串转成八进制的字符串.例如"8"->"10",请写出代码

2、写一个函数,已知一段坐标信息的字符串为:"260,270|290,260|310,230|320,200,10|300,150|280,150,10|270,130|250,130",计算得出离185,246坐标最近的一组坐标。
提示:For循环与数组应用。

3、筛选出100以内所有个位数加十位数等于10的数,例如82,8+2=10满足条件,请写出代码

4、随机生成一个1~100之间的整数,玩家可以通过函数InputBox命令输入数字来猜测那未知的随机数字,猜对则退出游戏,猜错则提示答案的范围(猜数游戏),请写出代码:
例如:
随机数为:60,用户输入20,程序提示"答案范围为:20~100"。
用户再次输入75,程序提示"答案范围为:20~75"。
用户再次输入60,程序提示"猜中",然后退出程序。

5、写一个脚本,要求:在画图工具中画一个渐变放大的圆形漩涡效果图。提示:cos函数与sin函数应用。

相关文档
最新文档