HwndEx = Plugin.Window.Search("剑侠情缘网络版叁") Dimenv Hwnd1 MsgBox "查找到符合的窗口句柄为:"& HwndEx //下面这句用于分割字符串,将获得的句柄组分割 dim MyArray MyArray = Split(HwndEx, "|") If UBound(MyArray) >= 0 Then //判断是否搜到句柄? For i = 0 To UBound(MyArray) - 1 hwndEx = Clng(MyArray(i)) //类型转换 Hwnd1 = hwndEx //获取可打字的窗口句柄 BeginThread cccc(Hwnd1) //启动线程 Delay 100 //启动线程需要点时间 Next End If //以下是【无限循环】防止全部脚本停止。 Do Delay 1000 Loop Function cccc(i) //我是一个函数,被你调用了 Hwnd=i If Hwnd>0 MsgBox("成功获得窗口!"&Hwnd) Else MsgBox("窗口获得失败,按确定结束……") //如果句柄获取失败,脚本结束 End If Call Plugin.Window.Active(Hwnd) Call Plugin.bgkms6_10.FakeWindowState(Hwnd, 2) //目标窗口对应的进程总是以为目标窗口在前台 Rem a Call Plugin.Bkgnd.KeyDown(Hwnd, 67) Call Plugin.Bkgnd.KeyUp(Hwnd, 67) Delay 500 Goto a End Function /* 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