Не так давно столкнулся с необходимостью запустить из 1С и нажать пару кнопок во внешней утилитке. С запуском проблем не возникло, но на этом все и закончилось.
После недолгих поисков в интернете наткнулся на утилиту AutoIt.
AutoIt v3 - это язык для написания сценариев, напоминающий BASIC и предназначенный для автоматизации Windows GUI (графического интерфейса пользователя MS Windows). Его возможности - это методы симуляций нажатий комбинаций клавиш клавиатуры и мыши, функции управления окнами и его визуальными элементами. Решение, явно предлагаемое средствами AutoIt v3, его сценарием, обычно невозможно достичь коротким и понятным кодом какого-либо языка.
AutoIt умеет:
- Запускать на выполнение Windows и DOS программы
- Симулировать нажатия комбинаций клавиатуры (поддерживается основная масса раскладок клавиатуры)
- Симулировать перемещения указателя мыши и нажатия на ее кнопки
- Перемещать, менять размер и управлять параметрами отображения окон
- Непосредственно взаимодействовать с "управляющими элементами" (controls) окна (получать/менять надпись, перемещать, отключать, и т.п. действия)
- Работать с буфером обмена для пересылки его текстового содержания
- Читать, менять и создавать ключи и значения реестра
Утилита - это хорошо, но я хотел получить это все из 1С. В комплекте с утилитой оказалась компонента AutoItX3, которая позволяет реализовать часть возможностей AutoIt через интерфейсы DLL и ActiveX/COM.
Данная обработка позволяет посмотреть на компоненту AutoItX3 в действии. Реализовано 2 режима работы:
- Выбираем в Синтаксис-помощнике интересующий нас метод, при необходимости указываем параметры, жмем Выполнить, и любуемся результатом.
- Набираем код ручками, жмем выполнить, и также любуемся результатом). Данный вариант позволяет реализовать последовательность действий (например: запустить блокнот, ввести текст, сохранить, закрыть и вернуться в 1с).
Для использования обработки нужно запустить 1С от имени администратора и нажать на кнопку Установить компоненту.
Если интересно - скачать утилиту, а также набор документации (в том числе и на русском языке) можно отсюда