无法使用 (SendKeys.Send) 粘贴字符串

Can't paste string using (SendKeys.Send)

我正在尝试创建一个允许我 运行 事件的应用程序,即使该应用程序未处于焦点。当我使用 [ctrl + alt + V] 触发事件时,它会在数组中选择一个随机字符串并将其粘贴到当前选定的输入框中(这可能是在 firefox、记事本、游戏中...)。但是,应用程序不会粘贴剪贴板中的信息。我正在使用 SendKeys.Send("^v") 来复制 [ctrl + V]。

任何改进代码或解决问题的建议都将不胜感激。

Public Class Form

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Tmr.Interval = 100
    Tmr.Start()
End Sub

Private Sub Tmr_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Tmr.Tick

    If CBool(GetAsyncKeyState(Keys.ControlKey)) And CBool(GetAsyncKeyState(Keys.V)) Then

        ' Create Variables for Array
        Dim PhrasesArray() As String = {"1", "2", "3", "4"}
        Dim Rand As New Random()
        Dim Index As Integer = Rand.Next(0, PhrasesArray.Length - 1)
        Dim SelectedValue = PhrasesArray(Index)

        My.Computer.Clipboard.SetText(SelectedValue) ' Copy To clipboard
    End If

End Sub

End Class

更新:我都试过了:SendKeys.Send("^(v)")SendKeys.Send("^v") 它们都不会触发粘贴命令。 我试过 SendKeys.Send("{ENTER}") 看看是否有任何 SendKeys 起作用,它确实起作用了。使用 SendKeys.Send("{ENTER}") 应用程序触发了回车键。

如果你想发送 Ctrl + V,你可以使用 SendKeys.Send("^(v)")


检查您要发送的每个不同命令密钥的文档:https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/sendkeys-statement