跳过获取到的窗口名
现在有相同类的窗口若干。我用函数WinGetitle获取了文件A的窗口名。但和我定义的不匹配。
请问我如何跳过这个不匹配的文件A去获取下一个文件B的窗口名呢。
在简单一点,我如何获得了就跳过继续获取下一个呢。 快来人呀 {:face (207):} 假设 有 zxya.txtcba.txt 的 记事本 窗口
WinTitleMatchMode 设为2 = 标题的任意子串皆可匹配
用 WinList得到 "a.txt" 的一个数组
循环 对WinList返回的数组 元素 用 WinActivate ,WinGetTitle遍历
判断WinGetTitle 的返回值和你想要的 字符串比较一下.......
帮助上讲到
WinGetTitle("") 将返回当前激活窗口的标题.WinGetTitle 能对最小化窗口或隐藏窗口正常工作.若同时有多个窗口符合匹配条件则程序将获取最近被激活的窗口的标题.
所以 你要换一个窗口 来 WinGetTitle前要先用WinActivate把该窗口激活
支持不得不顶一下楼主!
http://pimg.163.com/club/newclub/images/PP3.gif8错8错,支持~~~http://qb.lqualyn.com/images/sigline.gif
正旭这个品牌是名牌么 哈哈,我也刚好正用到这个list的。。。正在弄,可惜现在还不懂注册成服务的。 WinWaitActive("", "") 参考一下努力学习中{:face (125):} $Winname = WinList ()
While 1
$uTitl = InputBox ("a","b")
If @error = 1 Then
Exit
Else
For $i = 1 To $Winname
If $Winname[$i] <> "" And IsVisible($Winname[$i]) Then
WinActivate ($Winname[$i])
Sleep (1000)
$Titl = WinGetTitle ("")
If StringInStr ( $Titl, $uTitl) Then
MsgBox (0,"",$Titl)
ExitLoop
ElseIf $i = $Winname Then
MsgBox (0,"","fail")
ExitLoop
EndIf
EndIf
Next
EndIf
WEnd
Func IsVisible($handle)
If BitAND(WinGetState($handle), 2) Then
Return 1
Else
Return 0
EndIf
EndFunc ;==>不知道这能解决楼主的问题?
页:
[1]