我的脚本应该等待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

希望这可以帮助。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top