Как управлять мышкой?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
NewCoder
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 05.09.2008 (Пт) 23:38

Как управлять мышкой?

Сообщение NewCoder » 05.09.2008 (Пт) 23:47

Как из программы управлять мышкой?! ...
как перемещать указатель я нашел, win32.SetCursorPos() ... а вот нажатие кнопок никак, если кто знает подскажите плз!!! :roll:

NewCoder
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 05.09.2008 (Пт) 23:38

Re: Как управлять мышкой?

Сообщение NewCoder » 06.09.2008 (Сб) 0:38

Я так понимаю что надо каким то образом узнать hwnd окна под мышкой, и послать туда евент нажатия ...
но как это сделать я не знаю, перерыл весь гугл ниодного примера не нашел ...
Кто поможет буду очень благодарен

NewCoder
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 05.09.2008 (Пт) 23:38

Re: Как управлять мышкой?

Сообщение NewCoder » 06.09.2008 (Сб) 1:02

Нашел как узнать hwnd окна под курсором user32.WindowFromPoint() ... но как сгенерировать нажатие так и непонял :(

NewCoder
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 05.09.2008 (Пт) 23:38

Re: Как управлять мышкой?

Сообщение NewCoder » 06.09.2008 (Сб) 1:09

Все уже сам нашел :|

может кому интересно будет

Код: Выделить всё
Private Const MOUSEEVENTF_ABSOLUTE = &H8000
Private Const MOUSEEVENTF_LEFTDOWN = &H2
Private Const MOUSEEVENTF_LEFTUP = &H4
Private Const MOUSEEVENTF_MIDDLEDOWN = &H20
Private Const MOUSEEVENTF_MIDDLEUP = &H40
Private Const MOUSEEVENTF_MOVE = &H1
Private Const MOUSEEVENTF_RIGHTDOWN = &H8
Private Const MOUSEEVENTF_RIGHTUP = &H10

Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, _
ByVal cbuttons As Long, ByVal dwExtraInfo As Long)

Public Enum enButtonToClick
   btcLeft
   btcRight
   btcMiddle
End Enum

Public Sub MouseClick(ByVal MBClick As enButtonToClick)

Dim cbuttons As Long, dwExtraInfo As Long, mevent As Long
   Select Case MBClick
      Case btcLeft
      mevent = MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP
      Case btcRight
      mevent = MOUSEEVENTF_RIGHTDOWN Or MOUSEEVENTF_RIGHTUP
      Case btcMiddle
      mevent = MOUSEEVENTF_MIDDLEDOWN Or MOUSEEVENTF_MIDDLEUP
      Exit Sub
   End Select
   Call mouse_event(mevent, 0&, 0&, cbuttons, dwExtraInfo)
End Sub

Public Sub MouseMove(ByRef X As Long, ByRef Y As Long)
   Dim cbuttons As Long, dwExtraInfo As Long
   Call mouse_event(MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_MOVE, X, Y, cbuttons, dwExtraInfo)
End Sub

Private Sub Form_Load()
   MouseMove 0, 0
   MouseClick btcLeft
End Sub

[Viper] :: NewCoder, если тебя вдруг осенило, то имеется кнопка Правка. Именно ее надо использовать в таких случаях, вместо написания потока сообщений. Почитай правила. На первый раз предупреждение устное.


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 66

    TopList  
cron