Клик мышью

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

GPP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 351
Зарегистрирован: 02.11.2005 (Ср) 8:02
Откуда: г.Невельск о.Сахалин

Клик мышью

Сообщение GPP » 21.03.2009 (Сб) 12:34

Здравствуйте! Столкнулся с проблемой... Програмно перемешаю курсор по экрану и эмулирую нажатия кнопок мыши через API:

Код: Выделить всё
Private Declare Sub mouse_event Lib "user32" Alias "mouse_event" (ByVal dwFlags As Integer, ByVal dx As Integer, ByVal dy As Integer, ByVal cButtons As Integer, ByVal dwExtraInfo As Integer)
    Private Const MOUSEEVENTF_LEFTDOWN As Integer = &H2
    Private Const MOUSEEVENTF_LEFTUP As Integer = &H4
    Private Const MOUSEEVENTF_MIDDLEDOWN As Integer = &H20
    Private Const MOUSEEVENTF_MIDDLEUP As Integer = &H40
    Private Const MOUSEEVENTF_RIGHTDOWN As Integer = &H8
    Private Const MOUSEEVENTF_RIGHTUP As Integer = &H10

    Public Sub LeftClick(Optional ByVal p As Integer = 0)
        Application.DoEvents()
        If p = 2 Then mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
        If p = 1 Then mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
    End Sub


Все работает чудесно... Но если я таким способом пытаюсь закрыть .NET приложение, то курсор зависает над кнопкой закрытия "Х" после программного нажатия и сдвинуть его можно только вручную. В чем проблема? Заранее огромное спасибо!
GPP(c) Gorlo Pavel Programming

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Клик мышью

Сообщение MIT » 21.03.2009 (Сб) 12:45

А тебя не смущает тот факт, что в качестве положения клика(ByVal dx As Integer, ByVal dy As Integer) ты передаешь нули?
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

GPP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 351
Зарегистрирован: 02.11.2005 (Ср) 8:02
Откуда: г.Невельск о.Сахалин

Re: Клик мышью

Сообщение GPP » 21.03.2009 (Сб) 12:50

Да нет не смущает... Ведь все работает, только с .NET приложениями такая замануха. А что туда передавать? Координаты курсора? :)
GPP(c) Gorlo Pavel Programming

GPP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 351
Зарегистрирован: 02.11.2005 (Ср) 8:02
Откуда: г.Невельск о.Сахалин

Re: Клик мышью

Сообщение GPP » 21.03.2009 (Сб) 12:52

Чуть не забыл! Курсор я перемещаю отдельно Cursor.Position :) :) :)
GPP(c) Gorlo Pavel Programming


Вернуться в Visual Basic .NET

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

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

    TopList  
cron