本帖最后由 greatpeng 于 2024-5-6 14:11 编辑
按键精灵可以实现吗?做十个线程,每个线程单击一个位置。然后同时运行?
[Asm] 纯文本查看 复制代码 //注:按键精灵8.20版“BeginThread”新增 返回值参数
MessageBox "多线程命令属于高级命令功能,不推荐新手使用。"
//所谓多线程并不是同时做一件相同的事情,而是不分前后顺序执行脚本。
Dimenv Hwnd1 //定义环境变量(多线程需要)
RunApp "notepad.exe" //启动3个记事本测试用
RunApp "notepad.exe"
RunApp "notepad.exe"
Delay 2000 //等待3个记事本工具打开
Hwnd = Plugin.Window.Search("无标题 - 记事本") //搜索所有记事本窗口句柄
MyArray = Split(Hwnd, "|") //分解句柄
If UBound(MyArray) >= 0 Then //判断是否搜到句柄?
For i = 0 To UBound(MyArray) - 1
hwndEx = Clng(MyArray(i)) //类型转换
Call Plugin.Window.Move(hwndEx, i * 200 + 100, i * 200 + 100) //调整窗口位置
Call Plugin.Window.Active(hwndEx) //激活前面
Hwnd1 = Plugin.Window.FindEx(hwndEx, 0, "Edit", 0) //获取可打字的窗口句柄
BeginThread 打字 //启动线程
Delay 100 //启动线程需要点时间
Next
End If
//以下是【无限循环】防止全部脚本停止。
Do
Delay 1000
Loop
//以下是【测试用】子程序例子
Sub 打字()
//首先获取环境变量句柄
Hwnd2 = Hwnd1
//然后开始循环或者无限循环需要执行的脚本内容
For i=0 to 20
Call Plugin.Bkgnd.SendString(Hwnd2, i)
Delay 100
Call Plugin.Bkgnd.KeyPress(Hwnd2, 13)
Delay 200
Next
End Sub |