Что нового

Мышь, клавиатура Клики мышкой в точке с координатами

Ilia

Новичок
Сообщения
5
Репутация
0
Прошу помощи в следующей проблеме. Есть запущенная активная программа и надо отправить в определенное окно, одиночные клики мышкой в точки с координатами.
Решил использовать для этой задачи AutoIT. Снял данные с помощью AutoIT Window Info:
>>>> Window <<<<​
Title: Позиции​
Class: WindowsForms10.Window.8.app.0.38c606d_r6_ad1​
Position: 0, 201​
Size: 1024, 527​
Style: 0x16CD0000​
ExStyle: 0x00010101​
Handle: 0x0000000000310D9C​
>>>> Control <<<<​
Class: WindowsForms10.Window.8.app.0.38c606d_r6_ad1​
Instance: 7​
ClassnameNN: WindowsForms10.Window.8.app.0.38c606d_r6_ad17​
Name: gridControl​
Advanced (Class): [NAME:gridControl]​
ID: 1772192​
Text:​
Position: 1, 1​
Size: 1010, 489​
ControlClick Coords: 189, 34​
Style: 0x56010000​
ExStyle: 0x00000000​
Handle: 0x00000000001B0AA0​
и написал такой скрипт:
Код:
WinActivate("Позиции","WindowsForms10.Window.8.app.0.38c606d_r6_ad18") ;активировать окно Позиции
ControlClick("Позиции","","WindowsForms10.Window.8.app.0.38c606d_r6_ad17","","",24,125) ; одиночный клик в т. с координатами
Sleep(20000) ; подождать 20 секунд
ControlClick("Позиции","","WindowsForms10.Window.8.app.0.38c606d_r6_ad17","","",24,175) ;


Что не так, почему не работает?
 

All2khoff

Продвинутый
Сообщения
376
Репутация
68
у вас в описании задачи описано о координатах, но в тот же момент в коде вы пишите c ControlClick,
Может вам и в правду нужно просто перемещать курсор в нужную координату c помощью MouseMove а затем проводить обычный MouseClick
 
Автор
I

Ilia

Новичок
Сообщения
5
Репутация
0
у вас в описании задачи описано о координатах, но в тот же момент в коде вы пишите c ControlClick,
Может вам и в правду нужно просто перемещать курсор в нужную координату c помощью MouseMove а затем проводить обычный MouseClick
ControlClick - эмулирует нажатие клавиши на определенный элемент интерфейса. Не могу понять разницу в перемещении с MouseMove и затем нажатии с MouseClick вместо нажатия с ControlClick в определенных координатах. В чем разница?
 

All2khoff

Продвинутый
Сообщения
376
Репутация
68
ControlClick нужен для нажатия по id кнопки а mouseclick для нажатия в более простом режиме, если вам доподлинно известны координаты нужного элемента, то проще подвести курсор мышки к этому элементу используя MouseMove, а затем когда курсор перейдет в нужную точку, произвести нажатие MouseClick.
ControlClick же более продвинутая система, но в условиях недостаточного опыта или других факторов возможны так называемые миссклики (промахи), это не всегда проблема именно AutoIT, порой само приложение с которым работаешь не готово к такому событию. Это не страшно, попробуйте сначала использовать более простые варианты.
 
Автор
I

Ilia

Новичок
Сообщения
5
Репутация
0
подвести курсор мышки к этому элементу используя MouseMove, а затем когда курсор перейдет в нужную точку, произвести нажатие MouseClick.
В MouseClick можно ведь сразу вставить координаты. Зачем использовать MouseMove ?
Мышь двигает, а целевое окно не идентифицирует. То есть на экране остается окно проводника из которого запускается скрипт. Не понимаю.
 
Последнее редактирование:

All2khoff

Продвинутый
Сообщения
376
Репутация
68
ну я предпочитаю перебдеть так сказать, потому перед использованием MouseClick я предварительно подвожу курсор, это не занимает много времени, но при этом я уверен что MouseClick не промажет по кнопке, из-за возможных "подлагиваний" самой операционной системы. Я не говорю что мой подход самый правильный, но для меня важнее предсказуемость, чем экономия 2х строк кода.
По поводу целевого окна, если я работаю с координатами кнопок а не с их ID(например в 1с я ориентируюсь по координатам), то в первую очередь я убеждаюсь, что эти кнопки будут всегда в том месте где я этого ожидаю.
 
Автор
I

Ilia

Новичок
Сообщения
5
Репутация
0
ну я предпочитаю перебдеть так сказать, потому перед использованием MouseClick я предварительно подвожу курсор, это не занимает много времени, но при этом я уверен что MouseClick не промажет по кнопке, из-за возможных "подлагиваний" самой операционной системы.
Я понял. Код исправил, но проблема видимо в чем-то другом. Так как я вижу что курсор подходит на те точки что надо, но вот клика (нажатия ) не происходит. Дело видимо не в скрипте
 

InnI

AutoIT Гуру
Сообщения
4,950
Репутация
1,445
курсор подходит на те точки что надо, но вот клика (нажатия ) не происходит
Если программа запущена с правами администратора, то и скрипт должен иметь права администратора
Код:
#RequireAdmin
 
Верх