Делать в то время как с несколькими условиями

JustinCoplin спросил: 14 ноября 2017 в 06:36 в: vba

Простой вопрос, мне просто не хватает чего-то очевидного.

Я пытаюсь создать подпрограмму, которая опрашивает окно, которое нужно открыть, и я стремлюсь сделать это с помощью цикла, который будет выполняться, пока два условия соблюдены. Я получаю сообщение об ошибке:

Ошибка времени выполнения 13: Несоответствие типов

В цикле Do while и после поиска похожих проблем в SO I все еще не совсем уверен, что я делаю неправильно.

Вот строка, которая продолжает выдавать ошибку:

Sub FindHWND()
    Dim HWNDOut as string
    Dim Timer as Date
    Timer = Now()
    'This following line is the one erroring out. 
    Do While ((Now() < Timer + TimeValue("00:00:10")) And (HWNDOut = 0))
        HWNDOut = CStr(Hex(FindWindowEx(0&, 0, "SunAwtFrame", "Graph.graphml - yEd")))
        Debug.Print HWNDOut
        Sleep (100)
    Loop
    'Other, following sub and code that is not relevant
End Sub

Где Timer Now() в момент, предшествующий началу цикла, а HWNDOut - дескриптор искомого окна, которое будет найдено в цикле.

Все этот цикл проверяет каждые 100 мс, чтобы увидеть, открылось ли окно сторонней программы, чтобы предотвратить потерю команд в следующих подпрограммах.

Post Script: если у кого-то есть предложения, как чтобы сделать это лучше, я все уши. Это мой первый раз, когда я использую UI Automation, поэтому я все еще учусь. Редактирование: Добавил больше кода в блок для контекста.

0 ответов