有没有一种方法可以使自动关心是否可见窗户
-
09-10-2019 - |
题
我的脚本应该等待IE的“选择文件”对话框出现,然后使其消失并用自定义选择的文件接口替换。我已经奏效了,但是我na了一件事。代码如下:
WinWaitActive("Select File")
WinSetState("Select File", "", @SW_HIDE)
问题似乎是“选择文件”对话框是由IE创建的(不可见的),使活动活动是活跃的, 然后 使可见。这确实是一个基本的线程问题:
在某些情况下,IE使对话框活动(但尚不可见!)。我的脚本把它拿起了, 隐藏 对话框(实际上已经被隐藏了),然后IE使对话框可见wich结果可见对话框(!)。
我可以设置任何选项,使winwaitactive命令还等待可见的窗口,而不仅仅是活动?
解决方案
您可以使用下面的功能知道窗口是否可见。
Func IsWindowVisible($handle)
If BitAnd(WinGetState($handle), 2) Then
Return 1
Else
Return 0
EndIf
EndFunc
然后,您可以使用这样的循环来完成您想做的事情:
While 1
If IsWindowVisible(FindWindow("Select File", "")) Then ; I'm not sure about FindWindow syntax
WinSetState("Select File", "", @SW_HIDE)
Break
Else
Sleep (1000)
EndIf
EndWhile
希望这可以帮助。
不隶属于 StackOverflow