Щелчок мышью с использованием проблемы 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) после отправки события перемещения мыши в окно.