易语言打开一个外部程序并取得窗口句柄。

如题,打开一个外部程序如QQ,并取得这个窗口的句柄。
可以直接取得新载入的程序窗口的句柄吗?或者给新载入程序窗口设默认父窗口。

我有个方法:通过窗口标题取句柄 ****代表窗口标题

.版本 2.支持库 eAPI
.子程序 查找目标窗口, 整数型, , 3.0
.局部变量 窗口句柄数组, 文本型, , "0"
.局部变量 i, 整数型
.局部变量 目标窗口句柄, 整数型
.局部变量 窗口标题, 文本型

窗口句柄数组 = 取所有窗口列表 ()
.计次循环首 (取数组成员数 (窗口句柄数组), i)
窗口标题 = 取窗口标题 (到数值 (窗口句柄数组 [i]))
.如果真 (寻找文本 (窗口标题, “**********”, , 假) > 0)
目标窗口句柄 = 到数值 (窗口句柄数组 [i])
跳出循环 ()
.如果真结束

.计次循环尾 ()
返回 (目标窗口句柄)

注意:*******代表窗口标题,也可以是标题的关键字。
希望对你有帮助!追问

非常感谢您的回答。但是这个方法我用过,出现了问题。有些窗口似乎不能取窗口标题,一运行到那程序就终断连了。如世界之窗

追答

世界之窗是不是多窗口浏览器,如果是 您再找子窗口,这应该能取到标题了吧。具体的做法我没实践过,没有源码很遗憾。希望对你有帮助。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-28
方法一:取鼠标所在窗口句柄或窗口spy(鼠标捕获)。
方法二:通过类名取窗口句柄。QQ的类名:TXGuiFoundation追问

不能直接取得由易程序打开的程序句柄吗?
你说的第一个方法不方便,第二个方法我用过。
有时候单单通过难以分辨,要取得窗口标题或更多信息。可问题来了,有些软件如世界之窗,每次取他窗口标题时程序都运行出现问题。

追答

浏览器的句柄不能直接获取。精易模块里有专门的取IE窗口句柄。

本回答被网友采纳
相似回答