文档库 最新最全的文档下载
当前位置:文档库 › 按键精灵5级考题及答案

按键精灵5级考题及答案

//利用 ShowScrTXT 命令制作一个放大镜,效果类似抓抓工具的放大镜,可以放大显示鼠标指向的5*5区域的颜色.请写出代码
//放大范围5*5
While True
Call FDJ()
Delay 5
Wend
//放大镜函数
Function FDJ()
//放大镜的起点坐标
st_x = 10
st_y = 10
//获取鼠标的坐标
GetCursorPos x, y
//计算5*5区域范围
x1 = x - 2
x2 = x + 2
y1 = y - 2
y2 = y + 2
//获取并输出5*5区域内所有颜色
For a = x1 To x2
For b = y1 To y2
RtColor = Plugin.Color.GetPixelColor(a, b, 1)
//其中:4 - x2 + a = 5 - (x2 - a + 1),以下同理
scr_x1 = st_x + (14 - x2 + a) * 16
scr_y1 = st_y + (14 - y2 + b) * 16
scr_x2 = scr_x1 + 16
scr_y2 = scr_y1 + 16
Call Plugin.Msg.ShowScrTXT(scr_x1, scr_y1, scr_x2, scr_y2, "█", RtColor)
Next
Next
End Function


//、(API)利用 SendMessage 函数向QQ对话窗口发送文本里的所有内容(QQ消息发送器),请写出代码
//举例:a=发送qq消息("漂亮妹子","d:\123.txt")
//说明:QQ发送消息方式需设置为按“enter”发送消息

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As string) As Long
function 发送qq消息(qq名称,文件路径)
Hwnd = Plugin.Window.Find("TXGuiFoundation", qq名称)
If Hwnd = 0 Then
MessageBox "未找到该用户:" & qq名称
Exit Function
End If
Text = Plugin.File.ReadFileEx(文件路径)
//Call Plugin.Window.SendString(Hwnd, text)
Call Plugin.Sys.SetCLB(Text)
SendMessage hwnd, &H302, 0, 0
Call Plugin.Window.SendKeyPress(Hwnd, 13)
End Function


//写一个子程序,可以使鼠标从当前的坐标逐点的移动到目的坐标(带轨迹的鼠标移动),请写出代码
Sub 鼠标从当前位置匀速移动到目标(x2,y2)

GetCursorPos x1, y1
For i=1 to 50
dx = (x2 - x1) / 50
dy = (y2 - y1) / 50
MoveTo int(x1 + i * dx), int(y1 + i * dy)
Delay 10
Next
End Sub



写一个函数,要求:使用单点找色功能写出多点找色效果。
提示:多点找色命令:FindMutiColorEx


Function FindMutiColorEx(x1, y1, x2, y2, 颜色)
FindMutiColorEx = ""
If instr(颜色, "|") < 0 Then
FindColor x1, y1, x2, y2,颜色,intX,intY
If intX > 0 And intY > 0 Then
FindMutiColorEx=颜色&","&intX&","&intY
Else
FindMutiColorEx = 0
End If
Exit Function
End if
ss = split(颜色,"|")
index = 0
count = UBound(ss) + 1
Do While index < count
FindColor x1, y1, x2, y2, ss(index), intX, intY
If intX > 0 And intY > 0 Then
FindMutiColorEx = FindMutiColorEx & ss(index) & "," & intX & "," & intY & "|"
End if
index=index+1
Loop
If right(FindMutiColo

rEx, 1) = "|" Then
FindMutiColorEx=left(FindMutiColorEx,len(FindMutiColorEx)-1)
End If
End Function

//编写一个脚本,对至少三个以上记事本窗口做相同操作,对任意一个窗口进行手动操作,其余窗口由脚本执行相同步骤的键鼠操作,记得是键盘操作+鼠标操作,要求不使用多线程实现该效果。


num=3//设置记事本数量为3,可更改

For num
RunApp "notepad.exe" //启动3个记事本测试用
next
Delay 2000 //等待3个记事本工具打开

HwndEx = Plugin.Window.Search("记事本")
hwnd = Split(HwndEx, "|")
//
//
If UBound(Hwnd) >= 0 Then //判断是否搜到句柄?
For i = 0 To UBound(hwnd) - 1
Call Plugin.Window.Move(Hwnd(i), 0, 0)
Hwnd(i) = Plugin.Window.FindEx(Hwnd(i), 0, "Edit", 0)
Next
End If

//循环判断键盘鼠标操作
do
anjian = GetLastKey()
If anjian <> 0 Then
For i = 0 To num - 1
call mykeypress(hwnd(i),anjian)
Next
End if
Mouse = GetLastClick()
If Mouse<> 0 Then
For i = 0 To num - 1
If Mouse = 32770 Or Mouse = 32769 Then
GetCursorPos x, y
Call Plugin.Bkgnd.leftClick(Hwnd(i), x-8, y-51)//相对前台坐标
End If
If Mouse = 32774 Or Mouse = 32773 Then
GetCursorPos x, y
Call Plugin.Bkgnd.RightClick(Hwnd(i), x-8, y-51)//相对前台坐标
End If
Next
End if
Loop

sub mykeypress(hwnd, text)//作用是检测当前窗口,不重复输入
Hwndnote = Plugin.Window.MousePoint()
If hwnd = Hwndnote Then
Exit sub
End If
Call Plugin.Bkgnd.KeyPress(Hwnd,text)
End Sub



相关文档
相关文档 最新文档