EastBlood Ответов: 0

Что такое проблема в кодах (отправить сообщение)


Я пытаюсь разработать какой-то код, чтобы сделать нажатие кнопки на приложение, не перемещая на него курсор. Я вижу сообщения под Spy++, но ничего не происходит.
Заранее спасибо...

Public Class Form1
    Const WM_LBUTTONDOWN = &H201
    Const WM_LBUTTONUP = &H202
    Const MK_LBUTTON = &H1
    Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Int32, ByVal wMsg As Int32, ByVal wParam As Int32, ByVal lParam As Int32) As Int32
    Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Int32
    Private Sub cmdBSPerform_Click(sender As Object, e As EventArgs) Handles cmdBSPerform.Click
        Dim hwnd As Long = FindWindow(vbNullString, handle.Text)
        Dim lParam As Int32
        lParam = MakeLParam(txtXBSPerform.Text, txtYBSPerform.Text)
        SendMessage(hwnd, WM_LBUTTONDOWN, WM_LBUTTONUP, MakeLParam(txtXBSPerform.Text, txtYBSPerform.Text))
        SendMessage(hwnd, WM_LBUTTONUP, 0, MakeLParam(txtXBSPerform.Text, txtYBSPerform.Text))
    End Sub
    Public Function MakeLParam(ByVal LoWord As Int32, ByVal HiWord As Int32) As Int32
        Return (HiWord << 16) Or (LoWord And &HFFFF)
    End Function
End Class


Что я уже пробовал:

Я попытался сделать нажатие кнопки на приложение, не перемещая на него курсор, я могу видеть свои сообщения под spy++, но ничего не происходит

[no name]

Я думаю, что вы должны объявить параметр hwnd как 'IntPtr'
Тогда окно, в которое вы пытаетесь попасть, не должно находиться в свернутом режиме на панели задач, также если окно находится за другим окном, которое перекрывается. Вы должны написать функцию, чтобы проверить, находится ли она в фокусе.

EastBlood

я сделал это, но все еще не работал :/

EastBlood

если курсор находится над окном, он прекрасно работает. Как мне это сделать? - а ты знаешь?

[no name]

Вам нужно изменить свои параметры, http://pinvoke.net/search.aspx?search=sendmessage& пространство имен=[все]

EastBlood

какой из них вы рекомендуете ?

0 Ответов