按键精灵怎么控制多个窗口。要什么多线程。基本的我还是董的。但是这个多线程还是懵懵懂懂。还望大神赐教
按键精灵怎么控制多个窗口。要什么多线程。基本的我还是董的。但是这个多线程还是懵懵懂懂。还望大神赐教。就是大神举个例子。比如将2个游戏窗口同时移动到坐标(0,0)还望大神仔...
按键精灵怎么控制多个窗口。要什么多线程。基本的我还是董的。但是这个多线程还是懵懵懂懂。还望大神赐教。就是大神举个例子。比如将2个游戏窗口同时移动到坐标(0,0)还望大神仔细分解要领。
展开
2个回答
展开全部
很少用多线程,感觉容易冲突.
不能完全同步,有5毫秒内的差距
//多线程
Global hwnd1 ,hwnd2 //全局变量,多线程可得到他们的值
//打开2个记事本
For 2
RunApp "notepad.exe"
Next
Do
Delay 1000
//下面这句是遍历符合窗口标题("记事本")的句柄保存到数组(HwndEx)里
HwndEx = Plugin.Window.Search("记事本")
Loop Until len(hwndex)>0
MsgBox "查找到符合的窗口句柄为:"& HwndEx
//下面这句用于分割字符串,将获得的句柄组分割
//dim MyArray
MyArray = Split(HwndEx, "|")
If UBound(MyArray)>=0 Then
i=0
For UBound(MyArray)
//下面这句将字符串转换成数值
Msgbox "第 "& i+1 &" 个窗口句柄为:"&Clng(MyArray(i))
i=i+1
Next
hwnd1=Clng(MyArray(0))
hwnd2=Clng(MyArray(1))
End If
线程ID1=BeginThread(移动窗口1)
线程ID2=BeginThread(移动窗口2)
//写两个一样的子程序为了防止冲突
Sub 移动窗口1
//移动窗口到(0, 0)位置
Call Plugin.Window.Move(Hwnd1, 0, 0)
End Sub
Sub 移动窗口2
//移动窗口到(0, 0)位置
Call Plugin.Window.Move(Hwnd2, 0, 0)
End Sub
不能完全同步,有5毫秒内的差距
//多线程
Global hwnd1 ,hwnd2 //全局变量,多线程可得到他们的值
//打开2个记事本
For 2
RunApp "notepad.exe"
Next
Do
Delay 1000
//下面这句是遍历符合窗口标题("记事本")的句柄保存到数组(HwndEx)里
HwndEx = Plugin.Window.Search("记事本")
Loop Until len(hwndex)>0
MsgBox "查找到符合的窗口句柄为:"& HwndEx
//下面这句用于分割字符串,将获得的句柄组分割
//dim MyArray
MyArray = Split(HwndEx, "|")
If UBound(MyArray)>=0 Then
i=0
For UBound(MyArray)
//下面这句将字符串转换成数值
Msgbox "第 "& i+1 &" 个窗口句柄为:"&Clng(MyArray(i))
i=i+1
Next
hwnd1=Clng(MyArray(0))
hwnd2=Clng(MyArray(1))
End If
线程ID1=BeginThread(移动窗口1)
线程ID2=BeginThread(移动窗口2)
//写两个一样的子程序为了防止冲突
Sub 移动窗口1
//移动窗口到(0, 0)位置
Call Plugin.Window.Move(Hwnd1, 0, 0)
End Sub
Sub 移动窗口2
//移动窗口到(0, 0)位置
Call Plugin.Window.Move(Hwnd2, 0, 0)
End Sub
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询