Что нового

[Мышь, клавиатура] Автоматизация нажатия кнопки мыши не по координатам, а по объектам

Buivol

Новичок
Сообщения
1
Репутация
0
Версия AutoIt: 3.3.8.1

Описание:
Имеется 2 программы в которых надо выполнять рутинные действия после перезагрузки
Итак по очереди:
1. программа Shared Serial Port, запуск по определённому пути (c:\navitel\ssp\serialshare.exe)
2. выбор сом порта №6
3. нажатие кнопки "Share Port"
4. выбор появившегося подменю "Connected application"
5. в графу "add application with custom access right" вводиться адрес "c:\navitel\navitel_pc.exe"
6. галочка в "Allow reading"
7. галочка в "Allow writing"
8. галочка в "Manage control lines"
9. выбор пункта "Use custom parameters"
10. в поле "Baundrate" во всплывающем меню выбрать "4800"
11. кнопка Apply
12. скрытие окна в трей

Код:
Opt("MouseCoordMode",0)
Run("C:\navitel\ssp\SerialShare.exe")
WinWait("Shared Serial Ports Configuration","Manage control lines")
If Not WinActive("Shared Serial Ports Configuration","Manage control lines") Then WinActivate("Shared Serial Ports Configuration","Manage control lines")
WinWaitActive("Shared Serial Ports Configuration","Manage control lines")
MouseMove(58,175)
MouseDown("left")
MouseUp("left")
Sleep(1000)
MouseMove(88,47)
MouseDown("left")
MouseUp("left")
Sleep(1000)
MouseMove(84,194)
MouseDown("left")
MouseUp("left")
Sleep(1000)
MouseMove(277,156)
MouseDown("left")
MouseUp("left")
Sleep(1000)
MouseMove(382,156)
MouseDown("left")
MouseUp("left")
Sleep(1000)
MouseMove(496,157)
MouseDown("left")
MouseUp("left")
Sleep(1000)
MouseMove(446,131)
MouseDown("left")
MouseUp("left")
Sleep(1000)
Send("c{SHIFTDOWN};{SHIFTUP}\navitel\navitel{SHIFTDOWN}-{SHIFTUP}pc.exe")
MouseMove(466,250)
MouseDown("left")
MouseUp("left")
Sleep(1000)
MouseMove(600,281)
MouseDown("left")
MouseUp("left")
Sleep(1000)
Send("{UP}{ENTER}")
MouseMove(568,406)
MouseDown("left")
MouseUp("left")
Sleep(1000)
MouseMove(530,4)
MouseDown("left")
MouseUp("left")
Sleep(1000)

скрипт создан с помощью "ScriptWriter"


сделал, работает, но всё выполняется по координатам перемещения мыши, а это не совсем приемлемо допустим при изменении разрешения экрана, координаты соответственно другие.


1. программа "Navitel Navigator для ПК" запуск по определённому пути (c:\navitel\navitel_pc.exe)
2. "Ок" в окне "выбора языка"
3. "принимаю" в окне "Лиц. соглашения"
4. "Ок" в окне "Предупреждение"
5. нажатие кнопки "НЕТ" в появившемся окне "Включить сервис Навител Пробки?"
6. нажатие кнопки "НЕТ" в появившемся окне "Включить Навител Друзья?"
7. нажатие кнопки "Запретить" в появившемся окне "Установить соединение с Интернетом для использования онлайн сервисов?"
8. нажатие кнопки "2D" в запустившейся программе

Код:
Opt("MouseCoordMode",0)
Run("C:\navitel\Navitel_PC.exe")
WinWait("Navitel PC Edition","")
If Not WinActive("Navitel PC Edition","") Then WinActivate("Navitel PC Edition","")
WinWaitActive("Navitel PC Edition","")
MouseMove(780,44)
MouseDown("left")
MouseUp("left")
Sleep(1000)
MouseDown("left")
MouseUp("left")
Sleep(1000)
MouseMove(784,201)
MouseDown("left")
MouseUp("left")
Sleep(1000)
MouseMove(779,43)
MouseDown("left")
MouseUp("left")
Sleep(1000)
MouseMove(778,43)
MouseDown("left")
MouseUp("left")
Sleep(1000)
MouseMove(558,275)
MouseDown("left")
MouseUp("left")
Sleep(1000)
MouseDown("left")
MouseUp("left")
Sleep(1000)
MouseMove(514,331)
MouseDown("left")
MouseUp("left")
Sleep(1000)
MouseMove(782,330)
MouseDown("left")
MouseUp("left")
Sleep(1000)
MouseMove(777,48)
MouseDown("left")
MouseUp("left")
Sleep(1000)
MouseDown("left")
MouseUp("left")
Sleep(1000)
MouseMove(775,51)
MouseDown("left")
MouseUp("left")
Sleep(1000)
MouseMove(767,56)
MouseDown("left")
MouseUp("left")
Sleep(1000)
MouseMove(558,292)
MouseDown("left")
MouseUp("left")
Sleep(1000)
MouseDown("left")
MouseUp("left")
Sleep(1000)
MouseMove(431,331)
MouseDown("left")
MouseUp("left")
Sleep(1000)
MouseMove(784,324)
MouseDown("left")
MouseUp("left")
Sleep(1000)


но тут всё затыкается после 1 пункта. насколько я понимаю "navitel_pc.exe" является программой эмулятором Windows Mobail для работы навигации и в итоге запускается подпрограмма, а в ней нажатия кнопок мыши не правильно воспроизводятся


Примечания:
Сильно не бейте, если есть какие ошибки в оформлении темы, просто ткните "пальцем" и я обязательно постараюсь исправить.

извеняюсь за то, что в теме поднято 2 вопроса по двум программам, но в итоге должен получиться единый скрипт.
 
Верх