Как стать автором
Обновить

AutoIt — полезный костыль на все случаи

Всем привет.
Поговорим о том, как приходится решать элементарные задачи в условиях недостаточной организованности, либо бюрократизированности руководящего аппарата. Некоторое время назад мне доверили модерировать форум нашего сайта, главным образом — чистить авгиевы конюшни спам. Не проблема, но с развитием сайта, спамеров стало больше, да и основной работы добавилось. На данный момент приходится уделять этому занятию около часа пару раз в неделю, и за эти промежутки накапливается больше сотни страниц, т.е. более 3 тыс.новых тем. Блокировка по IP почему-то не срабатывает, но разобраться в этом мне не доверили — админская учетка только у самого старшего и самого занятого. Пришлось выкручиваться своими силами. Нет, не долбить мышью в одни и те же точки час подряд. Для таких времянок-подпорок есть отличное средство — AutoIt, скриптовой язык, похожий на Бейсик.

Итак, приступим. Адрес сайта убрал, дабы не сочли рекламой.

;
;******************************************************************************
; Скрипт ClearSpam чистит оптом спам на форуме сайта *********
; Версия скрипта: 0.1 от 17 мая 2013 г.
;******************************************************************************
;
;предотвращение возможности множественного запуска скрипта
If WinExists(@ScriptName) Then Exit
AutoItWinSetTitle(@ScriptName)

HotKeySet ( 'Pause', 'GoOff')

MsgBox(0, 'ВНИМАНИЕ !', 'Скрипт выполняет чистку при открытой странице раздела в режиме модератора' & @CRLF & 'в режиме экрана 1280 х 1024 окно Оперы развернуто в полный экран.', 8)
WinWait('*********.ru • Центр модератора • Просмотреть форум - Opera')
Sleep(1000)
WinActivate('********* • Центр модератора • Просмотреть форум - Opera')

While 1
WinWaitActive('********* • Центр модератора • Просмотреть форум - Opera')
Sleep(700)
Send('{PgDn 2}')
Sleep(300)
MouseClick('left', 1050, 855)
Sleep(300)
MouseClick('left', 1030, 835)
Sleep(300)
MouseClick('left', 1000, 705)
Sleep(300)
MouseClick('left', 1180, 835)
Sleep(500)
If WinExists('Ошибка - Opera') Then GoOff()
WinWaitActive('********** • Центр модератора • Удалить выбранные темы - Opera')
Sleep(700)
MouseClick('left', 630, 460)
Sleep(300)
Wend

Func GoOff()
HotKeySet ('Pause')
MsgBox(0, 'ВНИМАНИЕ !', 'Скрипт закончил обработку спама', 5)
Exit 0
EndFunc

На очереди — еще один скрипт, сборка базы заявок по выезду на дом с веб-формы доступа. Эти заявки (а их там немало за прошедшие полтора года) нам переправляет некий известный провайдер, предоставляя парольный веб-доступ к нашей группе заявок с двумя-тремя простейшими выборками. Проблема та же — нередко мне требуется посмотреть историю по конкретному клиенту — сколько раз и по каким проблемам к нему выезжали, чтобы подготовиться к очередному выезду, но такую выборку не предусмотрели. Чтобы получить доступ к базе на более низком уровне, придется ждать с полгода, пока провайдерские руководители и СБшники все согласуют, поэтому не вариант, поэтому приходится лепить подобные подпорки.
А как решаете вы подобные тех.-орг. проблемы?
Если есть интересные способы применения AutoIt, пишите в комментариях.

P.S. Изначально у меня не было намерений что-то постить, я всего лишь намеревался отписать комментарий в теме про антивирус Аваст — свои наблюдения по ложным срабатываниям на нормальные ехе-файлы и общению с ТП Аваста, но как выяснилось, для получения права голоса здесь необходимо не просто зарегистрироваться и подтвердить согласие с очевидными правилами, но еще и представить на суд зрителя новый топик, так что извините, если что.
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.