我的脚本应该等待IE的“选择文件”对话框出现,然后让它消失并用自定义选择文件界面替换它。我已经完成了所有工作,但有一件事唠叨我。代码如下:
WinWaitActive("Select File")
WinSetState("Select File", "", @SW_HIDE)
问题似乎是“选择文件”对话框(无形地)由IE创建,处于活动状态,然后可见。这确实是一个基本的线程问题:
在某些情况下,IE会使对话框处于活动状态(但尚未显示!)。我的脚本选择了这个,隐藏对话框(实际上已经隐藏了),然后IE使对话框可见,从而产生可见的对话框(!)。
我可以设置任何选项,使得WinWaitActive命令也等待窗口可见,而不仅仅是活动吗?
答案 0 :(得分:2)
您可以使用以下功能来了解窗口是否可见。
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
希望这有帮助。