如何使Visual Basic应用程序在特定程序中运行?

时间:2014-04-29 20:32:37

标签: vb.net

所以我在Visual Basic中制作了这个AutyoTyper。这很简单。我写下我希望它键入的文本,然后选择我希望文本输入的频率。这是代码。

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Timer1.Interval = TextBox2.Text * 1000


        Timer1.Start()
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

        SendKeys.Send(TextBox1.Text)
        SendKeys.Send("{Enter}")


    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Timer1.Stop()
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub
End Class

是否可以使我创建的此应用程序仅在特定程序中运行。我会想要它在一个程序中运行,而我在一边做其他东西而没有让autotyper中断我的其他活动。我希望它针对特定的程序。有什么提示吗?

1 个答案:

答案 0 :(得分:0)

要使用SendKeys,目标程序必须具有焦点。您无法将键击发送到没有焦点的程序。因此,使用SendKeys时无法避免中断用户的工作。

您可以使用目标程序的API而不是使用SendKeys。这仅适用于目标程序具有可以使用的API的情况。

例如:对于Microsoft Excel或Word,您可以编写在后台启动程序的代码,并将单词写入工作表或页面,而不会使这些程序具有焦点。请注意,您无法使用SendKeys进行此操作。但我不知道如何用记事本做同样的事情。许多程序都不能让你在后台操作它们。

SendKeys Class

请注意使用SendKeys可能很危险。如果用户在错误的时间点击错误的窗口,输出将被转储到新活动的窗口而不是预期的窗口。如果可能,应该避免使用它。