Страница: 1 |
Страница: 1 |
Вопрос: Имитация нажатия кнопки мышки
Добавлено: 18.03.06 10:53
Автор вопроса: FIX | ICQ: 348680795
В примерах я это нашёл. Но, можно ли, скажем нажимая на своей прозрачной форме, имитировать это нажатие на то что находится за ней. Вот как я пробовал:
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Select Case Button
Case 1
Me.Hide
'T1.Enabled = True
MouseFullClick btcLeft 'этот код на этом сайте в примерах
Me.Show
End Select
End Sub
Private Sub T1_Timer()
MouseFullClick btcLeft
T1.Enabled = False
End Sub
ничего не происходит. так же пробовал и через таймер но ничего не выходит. Помоему форма просто не успевает прятаться. ну а как этого избежать?
Заранее спачибо.
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа:
LeX
ICQ: 301424893
Вопросов: 28
Ответов: 277
Web-сайт:
Профиль | | #1
Добавлено: 18.03.06 13:01
Имитация нажатия кнопки на мышке
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)
Private Const MOUSEEVENTF_LEFTDOWN = &H2
Private Const MOUSEEVENTF_LEFTUP = &H4
Private Const MOUSEEVENTF_MIDDLEDOWN = &H20
Private Const MOUSEEVENTF_MIDDLEUP = &H40
Private Const MOUSEEVENTF_RIGHTDOWN = &H8
Private Const MOUSEEVENTF_RIGHTUP = &H10
Private Enum ButtonClick
btcLeft
btcRight
btcMiddle
End Enum
Private Function MouseClick(ByVal MBClick As ButtonClick) As Boolean
Dim cbuttons As Long
Dim dwExtraInfo As Long
Dim mevent As Long
Select Case MBClick
Case ButtonLeft
mevent = MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP
Case ButtonRight
mevent = MOUSEEVENTF_RIGHTDOWN Or MOUSEEVENTF_RIGHTUP
Case ButtonMiddle
mevent = MOUSEEVENTF_MIDDLEDOWN Or MOUSEEVENTF_MIDDLEUP
Case Else
MouseClick = False
Exit Function
End Select
mouse_event mevent, 0&, 0&, cbuttons, dwExtraInfo
MouseClick = True
End Function
Private Sub Command1_Click()
Call MouseClick(ButtonLeft)
End Sub
Номер ответа: 2
Автор ответа:
Victor
ICQ: 345743490
Вопросов: 42
Ответов: 385
Web-сайт:
Профиль | | #2
Добавлено: 18.03.06 15:55
Пока не могу ничего придумать кроме хука на мышь. Например, ловить нажатие на низком уровне и убирать свое окошечко до завершения щелчка. Уродски конечно.
Может быть, можно изменять регион окна, отрывая от него эпсилон-окрестность точки щелчка.
Номер ответа: 3
Автор ответа:
Fever
Вопросов: 60
Ответов: 808
Профиль | | #3
Добавлено: 18.03.06 15:57
нужно полйчить окно, которое находится сзади, а как это делается я не знаю. может кто из лидеров знает?