SendMessage

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

SendMessage

Сообщение Debugger » 03.11.2009 (Вт) 11:01

Код: Выделить всё
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const WM_LBUTTONDOWN = &H201
Private Const WM_LBUTTONUP = &H202
Private Const MK_LBUTTON = &H1

Private Sub Form_Load()
    X = 100
    Y = 100
    SendMessage Me.hwnd, WM_LBUTTONDOWN, MK_LBUTTON, Y * 65536 + X
    SendMessage Me.hwnd, WM_LBUTTONUP, MK_LBUTTON, Y * 65536 + X
End Sub

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Me.Caption = X \ Screen.TwipsPerPixelX & " " & Y \ Screen.TwipsPerPixelY
End Sub

Необходимо сделать клик по конкретной точке в конкретном окне. mouse_event по неизвестным причинам периодически перестает срабатывать, поэтому он не подходит.
На форуме вычитал SendMessage Me.hwnd, WM_LBUTTONDOWN, MK_LBUTTON, Y * 65536 + X.
Хотя что-то мне говорит о неправильности этого. И заголовок формы тоже сообщает мне, что что-то не так.

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: SendMessage

Сообщение Debugger » 04.11.2009 (Ср) 20:58

Код: Выделить всё
Private Sub Command1_Click()
    Dim l As Long
    Dim x As Integer
    Dim y As Integer
    x = 100
    y = 100
    l = ((y * 65536) + x)
    SendMessage Me.hwnd, WM_LBUTTONDOWN, 0, ByVal l
    SendMessage Me.hwnd, WM_LBUTTONUP, 0, ByVal l
End Sub

Заработало!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 77

    TopList  
cron