我想创建一个多次重复相同动作的机器人。有什么方法可以获得有关点击事件的更多信息。假设我在打开的文件资源管理器窗口中单击某处。程序可以告诉我单击该窗口中的特定区域或按钮吗?我可以在特定(已打开)窗口中单击或键入程序吗? 感谢
答案 0 :(得分:1)
是的,程序可以告诉您何时单击特定按钮。无论您点击什么按钮,都会触发其点击事件(如果存在)。为了手动告诉程序执行此操作,您可以实现短语..
btn.PerformClick()
其中“btn”是您需要点击的任何按钮的名称。每当调用此短语时,btn_Click事件处理程序将被激发,就像您自己实际单击该按钮一样。
使用程序中的实际窗口或表单执行相同的操作比较棘手,因为没有内置方法可以调用以触发Windows窗体单击事件。但这是可能的。定义窗口事件处理程序并触发它的代码将是..
Private Sub myWindow_Click() Handles MyBase.Click
'code you want to run on click event here
End Sub
myWindow_Click() 'where you want the click to be triggered
然而,在方法调用中进行模拟会更简单。
最后,为了模拟在窗口中键入文本,您可以只访问要更改的控件的text属性,然后将该文本属性更改为所需的文本。但从你的问题来看,你希望这与人类的方式类似。 这也可以通过一些工作来完成,使用附加到控件文本的计时器间隔。
让我们举例来说,你想要将“hello world”输入到屏幕上的文本框中。向表单添加一个计时器控件,并将其间隔设置为250,或者您希望单词在类型和方法中快速设置。
Dim str as String = ""
Dim pos as Integer = 0
Public Sub humanType(word as String)
str = word
Timer1.enabled = true
End Sub
public Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
myTextBox.Text = myTextBox.Text + str[pos]
pos = pos + 1
If pos = str.length Then
Timer1.enabled = false
End If
End Sub
如果您之前从未使用过计时器间隔,那么本教程将为VB.Net提供一些很好的信息。 http://www.techrepublic.com/article/perform-actions-at-set-intervals-with-vbnets-timer-control/
希望它有所帮助!