Dim txt, 点击间隔, i, Shul, obj, 弹出对话框,数组
txt = "设置每个坐标点的延迟,单位毫秒," & vbcr & vbcr & "如 50" & vbcr & vbcr & "表示每个坐标点击间隔50毫秒"
点击间隔 = InputBox(txt, "设置点击间隔")
If 点击间隔 = "" Then
点击间隔 = 10
ElseIf cint(点击间隔) < 10 Then
点击间隔 = 10
End If
TracePrint "点击间隔 = " & 点击间隔
If Plugin.File.IsFileExist("D:\鼠标多点连击脚本配置.txt") = True Then
Set obj = CreateObject("WScript.Shell")
txt = "是否读取保存的坐标" & vbcr & vbcr & "是 : 确定 ,用保存的坐标直接运行 " & vbcr & vbcr & "否 : 取消 , 重新获取坐标点 "
弹出对话框 = Cint(obj.Popup(txt, 0, "是否读取", 1))
Set obj = Nothing
If 弹出对话框 = 1 Then
Call 读取
配置文件并保存坐标到数组()
Call 鼠标点击坐标()
Else
Call Plugin.File.DeleteFile("D:\鼠标多点连击脚本配置.txt")
Rem 手动获得鼠标坐标20
i = 0
Do
Rem 不正确按键码重新获取23
txt = "设置第" & i + 1 & "个点的坐标" & vbcr & vbcr & "鼠标移动到目标后按Ctrl确定"& vbcr & vbcr &"如果设置结束,请按Shitf后运行多点点击"
MessageBox txt
key = WaitKey()
If key = 17 Then '按Ctrl
Redim Preserve x(i), y(i)
GetCursorPos x(i), y(i)
TracePrint "第 " & i + 1 & " 坐标= " & x(i) & " " & y(i)
Call Plugin.File.WriteFileEx("D:\鼠标多点连击脚本配置.txt", x(i) & "," & y(i))
ElseIf key = 16 and i > 0 Then '按Shift
Exit Do
Else
Goto 不正确按键码重新获取23
End If
i = i + 1
Delay 1
Loop
Call 鼠标点击坐标()
End If
Else
Goto 手动获得鼠标坐标20
End If
Sub 读取配置文件并保存坐标到数组()
数组 = Split(Plugin.File.ReadFileEx("D:\鼠标多点连击脚本配置.txt"), "|")
Shul = UBound(数组)
Redim x(Shul - 1), y(Shul - 1)
For i = 0 To Shul - 1
坐标 = Split(数组(i), ",")
TracePrint 坐标(0) & "," & 坐标(1)
x(i) = 坐标(0) : y(i) = 坐标(1)
Next
End Sub
Sub 鼠标点击坐标()
Shul = UBound(x)
Do
For i = 0 To Shul
MoveTo x(i), y(i)
//TracePrint x(i)&" | "& y(i)
Delay 点击间隔
LeftDown 1
Delay 1
LeftUp 1
Delay 1
Next
Delay 1
Loop
End Sub
Sub OnScriptExit()
LeftUp 1
End Sub
//这个是鼠标多点依次连击的代码,第一次运行鼠标选择要点击的每个点,自动保存到 D:\鼠标多点连击脚本配置.txt ,以后运行你可以直接获取保存的坐标,或者重新获取坐标
//使用方法按照脚本
弹窗提示.
追问谢谢高手。这脚本功能非常到位,但我只需要简单点,手动点击位置自动记录坐标就行,可以吗
追答For 1
//根据父窗口句柄(Hwnd)查找子窗口匹配类名("MSPaintView")或者匹配标题(),返回找到匹配的句柄Hwnd
Hwnd = Plugin.Window.FindEx(Hwnd, 0, "Notepad", 0)
If hwnd > 0 Then
TracePrint "找到记事本,句柄为 " & Hwnd
Exit For
Else
TracePrint "没有记事本,程序自动创建记事本"
RunApp "notepad.exe"
Delay 1000
//根据父窗口句柄(Hwnd)查找子窗口匹配类名("MSPaintView")或者匹配标题(),返回找到匹配的句柄Hwnd
Hwnd = Plugin.Window.FindEx(Hwnd, 0, "Notepad", 0)
If Hwnd > 0 Then
TracePrint "记事本句柄为 " & Hwnd
Exit For
End If
End If
MessageBox "系统找不到记事本程序,停止运行"
EndScript
Next
HwndEx = Plugin.Window.FindEx(Hwnd, 0, "Edit", "")
TracePrint "客户区句柄 " & HwndEx
i=0
Do
key = WaitKey()
If key = 17 Then '按Ctrl
Redim Preserve x(i), y(i)
GetCursorPos x(i), y(i)
TracePrint "第 " & i + 1 & " 坐标 = " & x(i) & " " & y(i)
Call Plugin.Bkgnd.SendString(HwndEx, "第 " & i + 1 & " 坐标 = " & x(i) & "," & y(i) & vbCr )
i = i + 1
End If
Delay 100
Loop
//运行时,如果没有记事本打开会自动打开一个空记事本,不要关闭它, 按Ctrl获取坐标,会依次写到这个记事本中.