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

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

Обрізаємо та зберігаємо у файл směrt.png. Можна зберігати і в bmp і jpg, Autohotkey їсть їх усіх.
Вийшов ось такий невеликий файлик:
Цей шматочок зображення буде шукати скрипт.
Тепер нам потрібні координати області на екрані, де скрипт здійснюватиме пошук. Можна, звичайно, сказати скрипту сканувати весь екран, але це нераціонально і напевно призводитиме до затримок у роботі.
Запускаємо цей скрипт:
MouseGetPos, X, Y
При натисканні ctrl+F1 координати курсору з'являться на екрані І скопіюються в буфер обміну.

Наше завдання: отримати координати цієї області. А саме – координати лівого верхнього та правого нижнього кутів. Підведіть кінчик курсору до лівого кута і натисніть 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 мілісекунд скрипт шукатиме ваш файлик на екрані.

Показано, звичайно, на приклад простої іграшки, але можливості застосування воістину безмежні. Автоматизація офісних додатків, ігор, промисловість, дизайнерські програми тощо. і т.д. на що вистачить фантазії.
З повагою, 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-платформ). Зате у вас у сухому залишку збільшення швидкості виконання роботи, мінімізація помилок, можливість зменшення штату співробітників або їх вивільнення для виконання більш пріоритетних завдань.
Це рішення, орієнтовані великі компаніїна зразок процесингових центрів, банків тощо., а чи не абстрактні ТОВ " Моя оборона " зі штатом три з половиною людини.