1

我正在使用 VB.Net 在 Silk4Net 中尝试一个简单的代码。我已经自动启动了一个计算器。在输入数字之前,会出现一个消息框。我无法找到自动关闭消息框的方法。我希望能够识别消息框并将其推到后面或完全关闭它。

代码如下:

    <TestMethod()>
Public Sub TestMethod1()
    With _desktop.Window("Calculator")
        .SetActive()
        generateMsg()
        .PushButton("Clear").Select()
        .PushButton("3").Select()
        .PushButton("5").Select()
    End With

End Sub

Public Sub generateMsg()
    Thread.Sleep(2000)
    With _desktop.Window(MsgBox("Test", MsgBoxStyle.Critical, "Test"))
        For Each p As Process In Process.GetProcesses
            If p.MainWindowTitle.Contains("Test") Then
                p.Kill()
            End If
        Next

        'With .Dialog("Test")
        '    '.PushButton("OK").Select()

        'End With
        ' .Close()
    End With
End Sub

任何帮助将非常感激。谢谢。

4

1 回答 1

-1

更新的答案

您可以在使用 SendKeys.SendWait 的代码中添加一个计时器 - 像这样 - 为您的测试环境稍微调整一下,因为我不确定 Silk4Net tbh

Dim WithEvents timer1 As New System.Timers.Timer
timer1.Interval = 5000
timer1.Enabled = True
MsgBox("Hello. I will go bye-bye in 5 seconds.")
timer1.Enabled = False

并作为一个单独的子

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles timer1.Elapsed
    SendKeys.SendWait("{ENTER}")
End Sub
于 2016-02-17T10:26:37.983 回答