如何判断一个窗口是不是浏览器窗口?
本帖最后由 tisiem 于 2009-7-5 11:47 编辑为了手头的事,已经连续地提了好几个问题了。
我现在的情况是这样的:
有一些打开着的窗口,并非是AU3打开的,标题也是未知的。
用 $oWin=WinGetTitle("") 得到了当前激活窗口的完整标题,想进一步判断这个窗口是不是一个浏览器窗口(IE的,或者是世界之窗的,都算是浏览器窗口),应该怎么做? 楼主最近总在研究浏览器啊,呵呵~
总觉得你的问题有点不可能解决。。。
当然,这有很大的可能是我的技术太差了。。。 原理:
1.winlist获取所有可见窗口的标题,WinGetProcess获取标题对应的pid
2.ProcessExists返回浏览器进程对应的pid,和1.对比,即可;判断窗口是不是浏览器窗口 by lynfr8
$var = WinList();列出所有窗口
For $i = 1 to $var
If $var[$i] <> "" AND IsVisible($var[$i]) Then;读取窗口标题数组
$pid = WinGetProcess($var[$i]);获取标题对应的进程pid
If $pid =ProcessExists("IEXPLORE.exe") Then MsgBox(0,$var[$i] ,"IE浏览器窗口");对比
If $pid =ProcessExists("Maxthon.exe") Then MsgBox(0,$var[$i] ,"Maxthon浏览器窗口");对比
EndIf
Next
Func IsVisible($handle); 只显示带有标题的可见窗口
If BitAnd( WinGetState($handle), 2 ) Then
Return 1
Else
Return 0
EndIf
EndFunc #include<process.au3>
$win = WinGetTitle("")
$pid = WinGetProcess($win)
$pro = _ProcessGetName($pid)
If $pro = "iexplorer.exe" Or $pro = "theworld.exe" Or $pro = "Maxthon.exe" Then
MsgBox(0,"","是浏览器窗口")
EndIf 二楼,是啊,我是想做个管理论坛的小工具,呵,你看高手都来啦,没有做不到,只有想不到啊。
三楼谢谢,原理讲解对我非常重要!知其然知其所以然,非常感谢!
四楼,你是神!你是超级版主名不虚传!!爽透了,就喜欢你给的这种简洁实用的代码,拜一下!
页:
[1]