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

18.11.10

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Использование компоненты AutoItX3 для платформы 8.2
.epf 240,63Kb
131
131 Скачать (1 SM) Купить за 1 850 руб.
Использование компоненты AutoItX3 для платформы 8.1
.epf 240,69Kb
179
179 Скачать (1 SM) Купить за 1 850 руб.

Не так давно столкнулся с необходимостью запустить из 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

См. также

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

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

12000 руб.

02.09.2020    172213    964    403    

925

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

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    14752    108    46    

108

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

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

22200 руб.

06.10.2023    17377    43    15    

75

Инструментарий разработчика Программист Платформа 1С v8.3 1C:Бухгалтерия Платные (руб)

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9360 руб.

17.05.2024    27411    96    48    

139

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

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

15000 руб.

10.11.2023    11978    45    33    

67

SALE! %

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

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

4800 3840 руб.

14.01.2013    191407    1153    0    

920

Инструментарий разработчика Программист 8.3.14 Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

20000 руб.

07.10.2021    18125    7    32    

42

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

Разработка Конструктор автоматизированных рабочих мест "Конструктор АРМ" реализована в виде расширения и является универсальным инструментом для создания АРМ любой сложности в пользовательском режиме.

3600 руб.

27.12.2024    1166    2    0    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. noonezzz 18.10.10 23:19 Сейчас в теме
специально для меня написал????))))
2. tormozit 7253 27.10.10 16:06 Сейчас в теме
Все бы хорошо, но опять нужны права админа для установки.
3. _WinChester_ 68 27.10.10 22:02 Сейчас в теме
да, дллку надо регать, тут ничего не поделаешь.
4. markers 278 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.
может проблема по другому уже решена?
Оставьте свое сообщение