0

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

4

1 回答 1

1

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


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

于 2019-07-19T11:47:45.153 回答