加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

vb.net – 如何模拟鼠标点击?

发布时间:2020-12-17 07:20:04 所属栏目:百科 来源:网络整理
导读:我正在努力制作一个用键盘点击的程序,如 Osu!所示. 我已经尝试过SendKeys()RaiseMouseEvent()和OnMouseClick().现在我正在尝试这个并且无法获得任何工作…… 我一直得到的错误是 PInvoke restriction: cannot return variants. Public Class Form1 Dim onn A
我正在努力制作一个用键盘点击的程序,如 Osu!所示.
我已经尝试过SendKeys()RaiseMouseEvent()和OnMouseClick().现在我正在尝试这个并且无法获得任何工作……
我一直得到的错误是 PInvoke restriction: cannot return variants.

Public Class Form1
    Dim onn As Boolean = False
    Declare Function mc Lib "user32.dll" Alias "mouse_event" (flag,x,y,button,extra)
    Private Sub Button1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button1.Click
        If Not onn Then
            Button1.Text = "Off"
            Label1.Text = "Status: On"
            onn = True
        ElseIf onn Then
            Button1.Text = "On"
            Label1.Text = "Status: Off"
            onn = False
        End If
    End Sub
    Private Sub Form1_KeyPress1(ByVal sender As Object,ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
        If onn And (e.KeyChar = "Z" Or e.KeyChar = "X" Or e.KeyChar = "z" Or e.KeyChar = "x") Then
            mc(&H2,0)
            mc(&H4,0)
        End If
    End Sub
End Class

解决方法

当功能处于“onn”状态时,此示例单击鼠标当前所在的位置:

Public Class Form1

    Private onn As Boolean = False

    Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Integer,_
      ByVal dx As Integer,ByVal dy As Integer,ByVal cButtons As Integer,_
      ByVal dwExtraInfo As Integer)

    Private Sub Form1_Load(sender As System.Object,e As System.EventArgs) Handles MyBase.Load
        Me.KeyPreview = True
        Button1.Text = "Off"
    End Sub

    Private Sub Button1_Click(sender As System.Object,e As System.EventArgs) Handles Button1.Click
        onn = Not onn
        Button1.Text = IIf(onn,"On","Off")
    End Sub

    Private Sub Form1_KeyPress1(ByVal sender As Object,ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
        If onn Then
            Select Case e.KeyChar
                Case "Z","z","X","x"
                    mouse_event(&H2,0)
                    mouse_event(&H4,0)

            End Select
        End If
    End Sub

    Private Sub Button2_Click(sender As System.Object,e As System.EventArgs) Handles Button2.Click
        Debug.Print("Button2")
    End Sub

    Private Sub Button3_Click(sender As Object,e As System.EventArgs) Handles Button3.Click
        Debug.Print("Button3")
    End Sub

End Class

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读