Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 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-сайт: www.vbkoders.info
 Профиль | | #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-сайт: vt-dbnz.narod.ru
 Профиль | | #2
Добавлено: 18.03.06 15:55
Пока не могу ничего придумать кроме хука на мышь. Например, ловить нажатие на низком уровне и убирать свое окошечко до завершения щелчка. Уродски конечно.

Может быть, можно изменять регион окна, отрывая от него эпсилон-окрестность точки щелчка.

Ответить

Номер ответа: 3
Автор ответа:
 Fever



Вопросов: 60
Ответов: 808
 Профиль | | #3 Добавлено: 18.03.06 15:57
нужно полйчить окно, которое находится сзади, а как это делается я не знаю. может кто из лидеров знает?

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам