Использование библиотеки AutoItX3.dll или Windows API из 1С

18.11.10

Разработка - Инструментарий разработчика

Эмуляция нажатий клавиш, движений мыши, работа с буфером обмена, а также различные манипуляции процессами, окнами, их элементами управления и многое другое..

Скачать файлы

Наименование Файл Версия Размер
Использование компоненты AutoItX3 для платформы 8.2
.epf 240,63Kb
130
.epf 240,63Kb 130 Скачать
Использование компоненты AutoItX3 для платформы 8.1
.epf 240,69Kb
178
.epf 240,69Kb 178 Скачать

Не так давно столкнулся с необходимостью запустить из 1С и нажать пару кнопок во внешней утилитке. С запуском проблем не возникло, но на этом все и закончилось.

После недолгих поисков в интернете наткнулся на утилиту AutoIt.

AutoIt v3 - это язык для написания сценариев, напоминающий BASIC и предназначенный для автоматизации Windows GUI (графического интерфейса пользователя MS Windows). Его возможности - это методы симуляций нажатий комбинаций клавиш клавиатуры и мыши, функции управления окнами и его визуальными элементами. Решение, явно предлагаемое средствами AutoIt v3, его сценарием, обычно невозможно достичь коротким и понятным кодом какого-либо языка.

AutoIt умеет:

  •  Запускать на выполнение Windows и DOS программы
  •  Симулировать нажатия комбинаций клавиатуры (поддерживается основная масса раскладок клавиатуры)
  •  Симулировать перемещения указателя мыши и нажатия на ее кнопки
  •  Перемещать, менять размер и управлять параметрами отображения окон
  •  Непосредственно взаимодействовать с "управляющими элементами" (controls) окна (получать/менять надпись, перемещать, отключать, и т.п. действия)
  •  Работать с буфером обмена для пересылки его текстового содержания
  •  Читать, менять и создавать ключи и значения реестра

Утилита - это хорошо, но я хотел получить это все из 1С. В комплекте с утилитой оказалась компонента AutoItX3, которая позволяет реализовать часть возможностей AutoIt через интерфейсы DLL и ActiveX/COM.

Данная обработка позволяет посмотреть на компоненту AutoItX3 в действии. Реализовано 2 режима работы:

  1. Выбираем в Синтаксис-помощнике интересующий нас метод, при необходимости указываем параметры, жмем Выполнить, и любуемся результатом.
  2. Набираем код ручками, жмем выполнить, и также любуемся результатом).  Данный вариант позволяет реализовать последовательность действий (например: запустить блокнот, ввести текст, сохранить, закрыть и вернуться в 1с).

Для использования обработки нужно запустить 1С от имени администратора и нажать на кнопку Установить компоненту.

Если интересно - скачать утилиту, а также набор документации (в том числе и на русском языке) можно отсюда

http://www.autoitscript.com/autoit3/downloads.shtml

См. также

SALE! 20%

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

13000 10400 руб.

02.09.2020    122233    673    389    

715

SALE! 25%

Infostart PrintWizard

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 15300 руб.

06.10.2023    7313    22    6    

39

SALE! 20%

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 8000 руб.

10.11.2023    3560    11    1    

34

SALE! 30%

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2520 руб.

14.01.2013    177768    1074    0    

849

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99360    239    97    

296

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18124    6    8    

40

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28114    3    10    

15

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    23605    15    15    

32
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. noonezzz 18.10.10 23:19 Сейчас в теме
специально для меня написал????))))
2. tormozit 7138 27.10.10 16:06 Сейчас в теме
Все бы хорошо, но опять нужны права админа для установки.
3. _WinChester_ 68 27.10.10 22:02 Сейчас в теме
да, дллку надо регать, тут ничего не поделаешь.
4. markers 274 27.10.10 22:13 Сейчас в теме
Супер!!!!!! И под сервером будет работать!!!!!!!
Спасибо!!!!! Давно мечтал о подобном!!!!
5. Збянтэжаны Саўка 245 14.05.11 15:24 Сейчас в теме
Замечательно!
Правда, я все же так и не смог переключить раскладку клавиатуры для Send с параметрами "^+"
(ну т.е. по CTRL+SHIFT) а то меня уже так "задолбало" переключаться вручную с Анг на Рус при входе в 1С:Предприятие!!!
в Delphi можно было просто вызвать LoadKeyboardLayout('00000419', KLF_ACTIVATE);

Не понимаю как же передать параметры из 1с в ф-ию LoadKeyboardLayout.
Вот так не работает:
ЗапуститьПриложение("rundll32.exe USER32.DLL, LoadKeyboardLayout 00000419, 0");
а как надо?
Прикрепленные файлы:
6. sanfoto 502 23.12.11 12:54 Сейчас в теме
Офигительный АкивХ + пример обработка.
а я блин мучился на всякие пустяки DLL-ки писал.
а ща вот...
типо этого))

//R =Autoitx3.WinMove( "Безымянный - Блокнот", "", 0, -27,200 ,200 ) ;
R =Autoitx3.WinMove( "Конфигуратор - Управление производственным предприятием, редакция 1.3", "", 0, -27,200 ,200 ) ;



))))
7. Crush 06.09.12 10:26 Сейчас в теме
А есть файл синтаксис помощника на русском языке?
8. Crush 06.09.12 10:26 Сейчас в теме
9. _WinChester_ 68 06.09.12 10:47 Сейчас в теме
(8) Crush, не совсем понятно что ты хочешь. В справке к компоненте есть описание синтаксиса большинства методов (русская справка также имеется), а в 1с нужно просто эти методы вызывать с тем же синтаксисом. В обработке пример вызова процедур компоненты.
19. Crush 18.09.12 09:04 Сейчас в теме
(9) хотел что бы методы и свойства компоненты были доступны в синтаксис-помощнике. Но в результате понял, что проще юзать русскую справку переключаясь между окнами.
10. shatt 38 13.09.12 17:44 Сейчас в теме
Здрасьте! :)
Никто не делал такую задачу с AutoIt?:
в "буфере" находится файл скопированный
в одном из объектов справочнике/документе открыт ДиалогВыбораФайла
теперь надо вставить файл из "буфера", выбрать его, и закрыть диалог?
11. _WinChester_ 68 17.09.12 17:31 Сейчас в теме
С такой задачей не сталкивался, AutoIT вроде не работает с файлами в буфере обмена.
12. shatt 38 17.09.12 18:06 Сейчас в теме
А с помощью горячих клавиш не получится сделать?
Я проверил ctrl+v - работает, но не понимаю пока как связать его с ДиалогомВыбораФайла
13. _WinChester_ 68 17.09.12 18:49 Сейчас в теме
Опиши задачу подробнее. Что за чем происходит, и что должно получиться в итоге.
14. shatt 38 17.09.12 19:34 Сейчас в теме
Идея такая:
1) Файл копируется в проводнике (правой кнопкой "Копировать")
2)В документе (произвольном) в 1с добавляется кнопка "вставить из файла" и поле строковое "путь к файлу"
При нажатии на эту кнопку откроется диалоговое окно "ДиалогВыбораФайла"
(при этом создается специальная папка для этого документа(программно) ) и в этом диалоге вставляется ранее скопированный файл, диалог закрывается

Все действия из пункта 2) будут делаться программно (пользователь просто нажимает кнопку "вставить из файла")
это хотелось сделать с помощью этой внешней компоненты.
Можно ли?

Готов поощерить материально за подсказку (если она увенчается успехом)
15. _WinChester_ 68 17.09.12 19:58 Сейчас в теме
Как вариант можно сделать следующим образом:
1. Открывается диалог выбора файла, посылается комбинация Ctrl+v, Enter (по идее, при открытии диалога, курсор стоит на поле имени файла, при нажатии ctrl+v туда вставляется имя и путь к копируемому файлу);
2. Воспользоваться методом КопироватьФайл(<ИмяФайлаИсточника>, <ИмяФайлаПриемника>), где в качестве имени файла источника будет ДиалогВыбораФайла.ПолноеИмяФайла, а имя файла приемника - программно созданная папка + имя файла. Имя файла можно получить так:
Файл = Новый Файл(ДиалогВыбораФайла.ПолноеИмяФайла);
Имя = Файл.Имя;
16. shatt 38 17.09.12 22:55 Сейчас в теме
2-ая часть супер!
еще на один шаг ближе к мечте:)
есть 2 момента:
1) не получается после открытия диалога выбора файла, отправить команду
2) ... подключение по RDP к серверу, и в этом случае комбинация ctrl+v ничего не вставляет
(до этого в свойствах подключения поставил галки про доступность буфера обмена и локальных дисков,
может быть клиент rdp обновить? как можно посмотреть свойства, не в курсе случаем? а может быть дело в другом?)
17. _WinChester_ 68 18.09.12 00:41 Сейчас в теме
А почему обязательно копировать из проводника? Нельзя сразу открывать расположение файла через 1С и там выбирать файл?
18. shatt 38 18.09.12 07:53 Сейчас в теме
С проводника потому что... универсальнее и быстрее (для пользователя).
Хотелось сделать механизм, чтобы можно было и с почты скопировать (с Outlook'а), и файл переданный через скайп, и отсканированный файл.
20. Zas1402 06.11.12 15:29 Сейчас в теме
21. trioka 20.05.13 07:00 Сейчас в теме
Добрый день. Не могу запустить на windows 2008x64
не регается dll (autoitx3_64.dll)
нужна для фикса загрузки локального проца при подключении по RDP.
может проблема по другому уже решена?
Оставьте свое сообщение