Помогите понять что я не так сделал. Topic is solved

Помощь в написании скриптов
Someone24

Помогите понять что я не так сделал.

Post by Someone24 » 10 Jan 2023, 12:12

Я только недавно начал осваивать программу, не бейте сильно.

Мне нужно автоматизировать процесс, но когда я активирую скрипт, такое ощущение что он делает все шаги ДО того как откроется окно в котором нужно вводить данный текст.

Что должно случиться, нужно создать 1000 файлов в "программе", 1-е нажатие создает, именует, нажимает "подтвердить" и так по кругу.

Что выходит по факту: 1-е нажатие создает, именует, кликает в пустоту (совершенно другие координаты), кликает еще раз в пустоту, именует, нажимает подтвердить, и так по кругу. (я уменьшал скорость передвижения мышки, только так понял что оно жмет в пустоту)

Где я накосячил с кодом?

Code: Select all

F12::
Pause
Return

F9::
loop, 1000
{
summ++
MouseClick, left, 274, 90, 1, 1
Send,TEST %summ%
MouseClick, left, 236, 424, 1, 1
}
return

Someone24
Posts: 6
Joined: 10 Jan 2023, 12:15

Re: Помогите понять что я не так сделал.  Topic is solved

Post by Someone24 » 10 Jan 2023, 12:21

Прошу ответить мне сюда, т.к. я создал этот пост до того как зарегался на форуме.

mcl
Posts: 357
Joined: 04 May 2018, 16:35

Re: Помогите понять что я не так сделал.

Post by mcl » 11 Jan 2023, 13:18

Машина делает не то, что Вы от неё хотите, а то, что Вы ей приказываете делать.
Поэтому на время отладки я бы советовал изменить Loop 1000 на Loop 1 − исправлять один косяк будет проще, чем тысячу.

Someone24 wrote: ...такое ощущение что он делает все шаги ДО того как откроется окно в котором нужно вводить данный текст
Почему бы ей не выполнять все шаги до открытия окна, если в коде нет ничего, указующего на необходимость ожидания?
Добавьте в соответствующее место (полагаю, перед Send) команду WinWaitActive, <Заголовок окна>

Someone24 wrote: ...кликает в пустоту (совершенно другие координаты)...
Опять же, куда Вы ей сказали − туда она и кликает. Проверьте правильность координат с помощью Window Spy, этот скрипт должен быть в папке с AHK, или его можно запустить из контекстного меню по иконке AHK в трее.

Выставьте подходящий CoordMode: координаты могут считаться или от левого-верхнего угла экрана (Screen, по умолчанию), или от левого-верхнего угла активного окна, включая заголовок (Window), или от левого-верхнего угла рабочей области активного окна (т.е. за вычетом заголовка, строки меню и границ окна: Client).

Советую также добавить задержки (Sleep) до и после Send − программа может внезапно задуматься на четверть секунды, и не поспеть за скриптом, и всё пойдёт наперекосяк.
github://oGDIp - GDI+ wrapper for AHK v1.1

Someone24
Posts: 6
Joined: 10 Jan 2023, 12:15

Re: Помогите понять что я не так сделал.

Post by Someone24 » 06 Feb 2023, 05:06

@mcl
Да, проблему удалось исправить исключительно добавлением кода задержки на 100мс, и все начало работать как по маслу.
Спасибо!

Post Reply

Return to “Помощь”