.net Can';t使用(SendKeys.Send)粘贴字符串

.net Can';t使用(SendKeys.Send)粘贴字符串,.net,vb.net,winforms,paste,keyhook,.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 Sy

我正在尝试创建一个应用程序,该应用程序允许我运行事件,即使该应用程序未处于焦点。当我使用[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)”



检查要发送的每个不同命令键的文档:

您的意思是什么?它不发送任何键,或者只发送^vI。我希望基本上触发粘贴命令来粘贴复制到剪贴板的文本。粘贴的快捷方式是[ctrl+v],这就是我想使用sendkeys的原因。不幸的是,它不起作用。我尝试了两种方法:
SendKeys.Send(^(v)”)
SendKeys.Send(^v”)
它不会触发粘贴命令。谢谢你试着帮助我。我认为你的答案是正确的,因为它是正确的。它确实起了作用。我自己的代码也能工作。问题是,很明显,alt键触发了应用程序中上下文菜单的一部分,删除了我将要发布工作的选定区域。