Щелчок мышью с использованием проблемы sendMessage

После трехчасовой работы мне наконец-то удалось создать код для щелчка мышью внутри окна, не перемещая курсор или не активировав окно с помощью sendMessage. Вот часть моего кода:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles     Button1.Click
    Dim x As Integer = Integer.Parse(TextBox1.Text)
    Dim y As Integer = Integer.Parse(TextBox2.Text)
    If (hw) Then
        SendMessage(hw, WM_LBUTTONDOWN, 0, MAKELONG(x, y))
        SendMessage(hw, WM_LBUTTONUP, 0, MAKELONG(x, y))
    End If
End Sub

Я попробовал это в блокноте, и он прекрасно работает. Тем не менее, я пытаюсь сделать это внутри игры, но по какой-то причине x,y не работает, щелчок происходит в моей последней позиции мыши внутри игры. Любые идеи, как я могу решить эту проблему?

1 ответ

Попробуйте сначала отправить событие mousemove в окно, например, например:

Public Const WM_MOUSEMOVE = &H200
SendMessage(MainWindow, WM_MOUSEMOVE, 0, MakeDWord(P.X, P.Y))

Если это не работает, попробуйте добавить Threading.Thread.Sleep(100) после отправки события перемещения мыши в окно.

Другие вопросы по тегам