0

3時間ほど作業した後、カーソルを動かしたり、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 が機能せず、ゲーム内の最後のマウス位置でクリックが発生します。この問題を解決する方法はありますか?

4

1 に答える 1

0

たとえば、次のように、最初に mousemove イベントをウィンドウに送信してみてください。

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

これが機能しない場合は、マウス移動イベントがウィンドウに送信された後に Threading.Thread.Sleep(100) を追加してみてください。

于 2016-08-30T10:08:58.783 に答える