Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как сымитировать клик левой кнопкой мыши (API?) / 25 сообщений из 79, страница 1 из 4
13.07.2006, 10:27
    #33849983
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сымитировать клик левой кнопкой мыши (API?)
VB6: У меня есть координаты X и Y. Хочу сделать так, чтобы контрол (MSFlexGrid в данном случае) решил, что юзер кликнул в это место левой кнопкой мыши.

Насколько я понимаю, стандартными средствами VB этого сделать нельзя - нужно как-то из VB послать сообщение через API - но я не силен в API, подскажите, плиз.
...
Рейтинг: 0 / 0
13.07.2006, 10:39
    #33850034
Melkiades
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сымитировать клик левой кнопкой мыши (API?)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
'Before you start this program, I suggest you save everything that wasn't saved yet.
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)
Const MOUSEEVENTF_LEFTDOWN = &H2
Const MOUSEEVENTF_LEFTUP = &H4
Const MOUSEEVENTF_MIDDLEDOWN = &H20
Const MOUSEEVENTF_MIDDLEUP = &H40
Const MOUSEEVENTF_MOVE = &H1
Const MOUSEEVENTF_ABSOLUTE = &H8000
Const MOUSEEVENTF_RIGHTDOWN = &H8
Const MOUSEEVENTF_RIGHTUP = &H10
Private Sub Form_Activate()
    Do
        'Simulate a mouseclick on the cursor's position
        mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP,  0 &,  0 &, cButt, dwEI
        DoEvents
    Loop
End Sub

...
Рейтинг: 0 / 0
13.07.2006, 11:07
    #33850162
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сымитировать клик левой кнопкой мыши (API?)
Работает. Огромное спасибо.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
06.05.2012, 15:23
    #37784537
катастрофа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сымитировать клик левой кнопкой мыши (API?)
подскажите пжл, а как будет двойной клик мышью по полю в Ворде?
...
Рейтинг: 0 / 0
06.05.2012, 17:42
    #37784635
down up down
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сымитировать клик левой кнопкой мыши (API?)
down
up
down
три подряд
...
Рейтинг: 0 / 0
06.05.2012, 17:51
    #37784639
катастрофа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сымитировать клик левой кнопкой мыши (API?)
down up down, а зачем аж три, двух не достаточно?
можно весь код привести?
...
Рейтинг: 0 / 0
06.05.2012, 19:51
    #37784688
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сымитировать клик левой кнопкой мыши (API?)
катастрофаdown up down, а зачем аж три, двух не достаточно?
можно весь код привести?Сказано - три - значит, три, три и три...
Попробовать (не тереть!) запустить код - тяжело? Затем - немного разобраться, с помощью дебаггера, почему именно так требуется...
...
Рейтинг: 0 / 0
06.05.2012, 21:26
    #37784736
down up down
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сымитировать клик левой кнопкой мыши (API?)
ну а сколько?
нажали
отпустили
нажали
отпустили
если это делать достаточно быстро получится двойной клик
на самом деле хватает первых трех последий не нужен для дабл клика
но вот потом может все равно понадобится четвертый up для правильного состояния мыши
не помню
надо проверить хватит трех или четвертый тоже нужен
...
Рейтинг: 0 / 0
07.05.2012, 08:00
    #37784951
катастрофа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сымитировать клик левой кнопкой мыши (API?)
down up down, проверить - не тяжело, ч пробую в лоб, так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Option Explicit

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)
Const MOUSEEVENTF_LEFTDOWN = &H2
Const MOUSEEVENTF_LEFTUP = &H4
'

Sub SelectFormFields()

'предполагается, что поле FormFields в Word уже выделено
    mouse_event MOUSEEVENTF_LEFTDOWN, 0&, 0&, 0&, 0&
    mouse_event MOUSEEVENTF_LEFTUP, 0&, 0&, 0&, 0&
    'mouse_event MOUSEEVENTF_LEFTUP, 0&, 0&, cButtons, dwExtraInfo
    mouse_event MOUSEEVENTF_LEFTDOWN, 0&, 0&, 0&, 0&
    mouse_event MOUSEEVENTF_LEFTUP, 0&, 0&, 0&, 0&
    mouse_event MOUSEEVENTF_LEFTDOWN, 0&, 0&, 0&, 0&
    mouse_event MOUSEEVENTF_LEFTUP, 0&, 0&, 0&, 0&

End Sub



ролучаю отлуп, как нужно, подскажите пжл
...
Рейтинг: 0 / 0
07.05.2012, 09:17
    #37784970
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сымитировать клик левой кнопкой мыши (API?)
а с чего ты решил, что оно не работает?
...
Рейтинг: 0 / 0
07.05.2012, 09:38
    #37784976
катастрофа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сымитировать клик левой кнопкой мыши (API?)
Shocker.Pro,
не созерцаю картинку (она в файле)
...
Рейтинг: 0 / 0
07.05.2012, 11:23
    #37785034
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сымитировать клик левой кнопкой мыши (API?)
А что, если мышью тыкать в левый верхний угол экрана появляется такая картинка?
...
Рейтинг: 0 / 0
07.05.2012, 11:49
    #37785056
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сымитировать клик левой кнопкой мыши (API?)
Shocker.ProА что, если мышью тыкать в левый верхний угол экрана появляется такая картинка?хотя нет, сорри, я наврал, по умолчанию как раз координаты относительные...
...
Рейтинг: 0 / 0
07.05.2012, 11:54
    #37785061
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сымитировать клик левой кнопкой мыши (API?)
У меня работает.
...
Рейтинг: 0 / 0
07.05.2012, 12:01
    #37785065
катастрофа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сымитировать клик левой кнопкой мыши (API?)
Shocker.ProУ меня работает.везёт же людям, то есть поле выделили и запустили макрос и работает? - верится с трудом!
...
Рейтинг: 0 / 0
07.05.2012, 12:24
    #37785078
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сымитировать клик левой кнопкой мыши (API?)
катастрофаShocker.ProУ меня работает.везёт же людям, то есть поле выделили и запустили макрос и работает? - верится с трудом!да, именно так
...
Рейтинг: 0 / 0
07.05.2012, 12:25
    #37785079
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сымитировать клик левой кнопкой мыши (API?)
Shocker.Proкатастрофапропущено...
везёт же людям, то есть поле выделили и запустили макрос и работает? - верится с трудом!да, именно таксобственно поле и выделять-то необязательно, двойной клик он и так его выделит
...
Рейтинг: 0 / 0
07.05.2012, 12:40
    #37785096
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сымитировать клик левой кнопкой мыши (API?)
Shocker.ProShocker.Proпропущено...
да, именно таксобственно поле и выделять-то необязательно, двойной клик он и так его выделитда и тройной клик там не нужен, двойного достаточно
...
Рейтинг: 0 / 0
07.05.2012, 14:13
    #37785188
катастрофа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сымитировать клик левой кнопкой мыши (API?)
Shocker.Pro, так делаю, чтобы по одному клику, чтобы открывало, то есть один клик-поле выделяется его величеством Ворд'ом, а далее вступает человек говорит, что после события - выделения поля тынцнуть ещё раз, ОК?
...
Рейтинг: 0 / 0
07.05.2012, 14:14
    #37785191
катастрофа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сымитировать клик левой кнопкой мыши (API?)
просмотрел 12519511 , ОК проверяю
...
Рейтинг: 0 / 0
07.05.2012, 14:32
    #37785207
катастрофа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сымитировать клик левой кнопкой мыши (API?)
попробовал, не пашет, вот ересь! ну не знаю уже что делать, нету кина как Вы этого добились?
...
Рейтинг: 0 / 0
07.05.2012, 17:19
    #37785367
down up down
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сымитировать клик левой кнопкой мыши (API?)
прежде чем жать кнопки надо мышь в нужную точку экрана поместить
SetCursor ?, ?
если координаты мыши и точки клика не совпадают работать не будет

это проверено на SendInput (а она скорее всего вызывается внутри mouse_event)

вообще тут полно примеров темы которых BelowZero создал про имитацию нажатий
...
Рейтинг: 0 / 0
07.05.2012, 17:21
    #37785368
катастрофа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сымитировать клик левой кнопкой мыши (API?)
down up down,
>прежде чем жать кнопки надо мышь в нужную точку экрана поместить
так когда на поле один раз кликнул, оно и выделилось
...
Рейтинг: 0 / 0
07.05.2012, 17:25
    #37785373
down up down
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сымитировать клик левой кнопкой мыши (API?)
SetCursor
mouse down
mouse up
mouse down
mouse up
...
Рейтинг: 0 / 0
07.05.2012, 17:31
    #37785380
down up down
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сымитировать клик левой кнопкой мыши (API?)
вот здесь есть готовый пример как используя
SendInput нажать кнопку клавы или кнопку мыши
http://www.sql.ru/forum/actualthread.aspx?tid=904988&pg=1&mid=11800044#11800044
правда в примерах одинарный клик
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как сымитировать клик левой кнопкой мыши (API?) / 25 сообщений из 79, страница 1 из 4
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]