qq_33929570 2024-12-14 01:46 采纳率: 0%
浏览 87
已结题

vb net 使用 sendMessage 如何输入鼠标坐标

例如我要使用sendmessage点击程序“”点击坐标“”窗口中(99,100)这个坐标,要如何输入呢,试了多次,都只能点击鼠标当前的位置

Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer

fw = FindWindow(Nothing, “点击坐标”)
SendMessage(fw, &H201, 0, ?)
SendMessage(fw, &H202, 0, ?)

  • 写回答

34条回答 默认 最新

  • 阿里嘎多学长 2024-12-14 01:46
    关注
    获得0.30元问题酬金

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    VB.NET 使用 SendMessage 输入鼠标坐标

    你可以使用 MOUSEEVENTF_LEFTDOWNMOUSEEVENTF_LEFTUP flags 来模拟鼠标点击事件,并使用 SetCursorPos 函数来设置鼠标坐标。

    以下是一个示例代码:

    Imports System.Runtime.InteropServices
    
    Public Class Form1
        <DllImport("user32.dll")>
        Private Shared Function SetCursorPos(ByVal X As Integer, ByVal Y As Integer) As Boolean
        End Function
    
        <DllImport("user32.dll")>
        Private Shared Function SendMessage(ByVal hWnd As IntPtr, ByVal Msg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
        End Function
    
        Private Const MOUSEEVENTF_LEFTDOWN As Integer = &H2
        Private Const MOUSEEVENTF_LEFTUP As Integer = &H4
    
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            ' 设置鼠标坐标
            SetCursorPos(99, 100)
    
            ' 模拟鼠标左键点击
            SendMessage(Me.Handle, 0x0201, MOUSEEVENTF_LEFTDOWN, 0)
            SendMessage(Me.Handle, 0x0201, MOUSEEVENTF_LEFTUP, 0)
        End Sub
    End Class
    

    在上面的代码中,我们使用 SetCursorPos 函数来设置鼠标坐标为 (99, 100),然后使用 SendMessage 函数来模拟鼠标左键点击事件。MOUSEEVENTF_LEFTDOWNMOUSEEVENTF_LEFTUP flags 分别表示鼠标左键按下和释放事件。

    评论

报告相同问题?

问题事件

  • 系统已结题 12月22日
  • 创建了问题 12月14日