我创建了一个加载网页的程序。 然后我编写了3个按钮,在网站上执行操作。这个功能很好。
但是现在我想要实现一个单击Button1一次的按钮,然后它应该等待5秒然后循环应该开始并按下Button2 10次。在此之后,整个过程应该重新开始。该程序是一种机器人。
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Call Button1_Click(sender, e)
Application.Wait(Now + TimeValue("0:00:10"))
End Sub
Application.Wait
无法正常运作,因为Application
不是System.Windows
表单的成员。
如何实施延迟?我该如何实现循环?
答案 0 :(得分:1)
基于评论,Threading.Thread.Sleep()会给您一个网站未加载的问题。问题是Threading.Thread.Sleep()会阻止整个程序执行代码,因为它会冻结它。以下是如何使程序等待一段时间。
Public Class Form1
Private Async Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
MessageBox.Show("Commands before waiting")
Await Wait(5000)
MessageBox.Show("Commands after waiting")
End Sub
Private Async Function Wait(ByVal ms As Integer) As Task
Await Task.Delay(ms)
End Function
End Class
只需在等待之前和之后使用您需要的命令替换MessageBox。
注意:这需要.NET Framework 4.5或更高版本
根据法比奥评论更新:
可以直接完成,无需像这样的Wait方法:
Public Class Form1
Private Async Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
MessageBox.Show("Commands before waiting")
Await Task.Delay(5000)
MessageBox.Show("Commands after waiting")
End Sub
End Class
这也可以在.NET framework 3.5或更高版本中使用,但它需要一些可以从here下载的库