因为你的总循环设置在了获取窗口句柄那句的前面,你获取窗口并且无限循环,那么等你开了新窗口的时候循环到了获取句柄的时候获取的当然就是新句柄了,所以发言到了新窗口。
总循环应该设置在获取句柄之下。
要对多个窗口后台操作要用到多线程:
BeginThread "line1"
BeginThread "line2"
BeginThread "line3"
Sub line1
WaitKey key
If key=49
//插入你对第一个窗口的操作
Else
Gosub line1
EndIf
Return
Sub line2
WaitKey key
If key=49
Rem 2
WaitKey key
Else
Gosub line2
EndIf
If key=50
//插入你对第二个窗口的操作
Else
Goto 2
EndIf
Return
Sub line3
WaitKey key
If key=49
Rem 3
WaitKey key
Else
Gosub line3
EndIf
If key=50
Rem 4
WaitKey key
Else
Goto 3
EndIf
If key=51
//插入你对第三个窗口的操作
Else
Goto 4
EndIf
Return
整句的意思是,如果按1,则执行对第一个窗口的操作,如果按2,就执行对第二个窗口的操作,如果按3执行对第三个窗口的操作,我标出的三个注释是插入你要操作的语句用的,当然,控制执行哪个窗口的键你也可以改,我用的是123,你也可以用ABC,还有,抓句柄的时候要对每一个窗口按一次键,记得对记录每个窗口句柄的变量用不同的英文表示,以免重复对一个窗口进行操作。
按键精灵我虽然不是很了解,但这东西应该只是模拟键盘鼠标操作。
多线程根本不是这个概念。
按键精灵肯定是在新窗口模拟按键的。他只是模拟,就像你自己敲键盘一样。你开新窗口,焦点就在新窗口,你按键盘鼠标,当然是在新窗口操作了。
多线程不稳定
没研究.......