Автоматизація рутини з AutoHotKey

Невелике продовження до попереднього посту

За минулий рік моє володіння скриптами трохи покращало, зокрема тепер я можу навчити скрипт розпізнавати зображення на екрані, шукати всякі кнопки, малюнки і т.д.

Давайте спробуємо якусь нехитру програму, наприклад іграшку сапер.

Навчимо скрипт реагувати на нашу смерть.

рутини

Робимо скріншот, відкриваємо Пейнт, і виділяємо невеликий шматочок жовтої пики.

рутини

Обрізаємо та зберігаємо у файл směrt.png. Можна зберігати і в bmp і jpg, Autohotkey їсть їх усіх.

Вийшов ось такий невеликий файлик:

Цей шматочок зображення буде шукати скрипт.

Тепер нам потрібні координати області на екрані, де скрипт здійснюватиме пошук. Можна, звичайно, сказати скрипту сканувати весь екран, але це нераціонально і напевно призводитиме до затримок у роботі.

Запускаємо цей скрипт:

MouseGetPos, X, Y

При натисканні ctrl+F1 координати курсору з'являться на екрані І скопіюються в буфер обміну.

autohotkey

Наше завдання: отримати координати цієї області. А саме – координати лівого верхнього та правого нижнього кутів. Підведіть кінчик курсору до лівого кута і натисніть Ctrl F1. Збережіть ці координати. Те саме з ПН кутом. (Вікно Сапера має бути активним)

скрипт

Тепер створіть наступний скрипт:

ImageSearch, xp, yp, 75, 61, 97, 83, *50 smert.png

Якщо скрипт нічого не знаходить, то змінним xp, yp надається порожнє значення, Null.

Якщо знаходить, то них вписуються координати знайденого зображення, спрацьовує умова виходу з циклу і запускається наступна частина коду.

*50 відповідає заСуворість пошуку. *0 максимальна строгість, *255 мінімальна.

F10 потрібен для аварійного виходу зі скрипту, якщо ви раптом створите нескінченний скрипт, що блокує ваші дії.

F12 для тимчасового вимкнення/увімкнення гарячих клавіш.

Отже, розташуйте směrt.png в одній папці зі скриптом, запустіть сапера, натисніть F1, і кожен 200 мілісекунд скрипт шукатиме ваш файлик на екрані.

autohotkey

Показано, звичайно, на приклад простої іграшки, але можливості застосування воістину безмежні. Автоматизація офісних додатків, ігор, промисловість, дизайнерські програми тощо. і т.д. на що вистачить фантазії.

З повагою, netwizard.

скрипт

Ліга освіти

  • Найкращі зверху
  • Перші зверху
  • Актуальні зверху

Це, звичайно, прикольно, але для автоматизації є речі й серйозніші. Наприклад, RPA. Розглянемо на прикладі софтини Blue Prism Automate, оскільки працюю саме з нею.

З її допомогою можна автоматизувати будь-що, починаючи від веб-додатків і закінчуючи консольними програмами мейнфреймів. Якщо додаток, що автоматизується, занадто нестандартний, і вбудованому application modeller не вдається знайти елеметні керування, то можна використовувати surface automation, який попіксельно їх шукатиме як у пості ТС-а чекається статус гравця.

При цьому все це можна реалізувати, не написавши жодного рядка коду. У Blue Prism весь алгоритм роботи робота складається за допомогою блок-схем, які реалізують ряд простих функцій типу маніпуляцій з елементами управління програмою, що автоматизується, і функцій складніше типу роботи з електронною поштою, БД і т.д.

При необхідності можна реалізовувати необхідний функціонал за допомогою невеликих скриптів на C#, J# абоVBA. Все це дає дуже потужні інструменти для автоматизації.

Наприклад, за допомогою вбудованих бібліотек і невеликих самописних скриптів на C# можна автоматизувати MS Excel настільки, що людині залишиться тільки підсовувати їй нові дані для роботи, а ексель сам буде шурхотіти звіти і статистику

а можете піст запиляти? було б цікаво

Раптово(!) в MS Excel є вбудований VisualBasic + макроси які роблять все те ж саме, але трохи дешевше. Ой, тобто зовсім дешево. Безкоштовно.

А за ті гроші, які коштує ліцензія продукту, про який ви стільки всього розписали – його макроси мають за пивом бігати поки що працюють.

Ця платформа вже має вбудовані можливості по роботі з MS Excel, яка раптово (!) використовує ту ж саму лібу по роботі з екселем. За фактом, у реаліях Blue Prism це набір реалізованих невеликих макросів-функцій (типові завдання на кшталт відкриття документа, внесення туди даних тощо), які "обгорнуті" для зручного використання всередині цієї самої платформи.

Але суть не в тому.

Зрозуміло, що якщо ваш кейс має на увазі тільки прості маніпуляції невеликими обсягами даних в екселе, то вам до біса не здався цей софт і вистачить за очі самих лише макросів.

Але якщо вам необхідно, наприклад, регулярно обробляти клієнтські вивантаження обсягом по кілька десятків мільйонів рядків, валідувати дані, а потім розносити їх по ще кількох системах і генерувати будь-які звіти на основі виконаної роботи з мінімальним залученням людини на основі вже існуючої у вашій компанії інфраструктури (софту та іншого), то RPA - ваш вибір.

Вам не знадобиться написання та подальша підтримка специфічного софту для автоматизації подібного завдання,лише опис алгоритму бізнес-процесу, що автоматизується (реалізація залежить від конкретного вендора RPA-платформ). Зате у вас у сухому залишку збільшення швидкості виконання роботи, мінімізація помилок, можливість зменшення штату співробітників або їх вивільнення для виконання більш пріоритетних завдань.

Це рішення, орієнтовані великі компаніїна зразок процесингових центрів, банків тощо., а чи не абстрактні ТОВ " Моя оборона " зі штатом три з половиною людини.