无法使用(SendKeys.Send)

时间:2019-07-19 11:40:21

标签: .net vb.net winforms paste keyhook

我正在尝试创建一个应用程序,即使该应用程序不是重点,它也允许我运行事件。当我使用[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}")触发了回车键。

1 个答案:

答案 0 :(得分:1)

如果要发送Ctrl + V,可以使用when(userRepository.save(Mockito.any(User.class))) .thenAnswer(i -> i.getArguments()[0]);


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