AutoIt: 3.
Версия:3.3.6.1
Категория: Автоматизация, Интеракция, Система / Реестр, Элементы GUI, Разное
Описание:
Для приложений, написанных на Excel/VBA существует достаточно много примеров реализации прогресс-бара, напр., http://spreadsheetpage.com/index.php/tip/displaying_a_progress_indicator/.
На практике встречаются ситуации, когда выполняется длительная команда для Excel (напр., обновление рабочей книги или обновление сводной таблицы данными с OLAP-сервера). В таких ситуациях прогресс-бар не может обновляться, пока не закончена длительная операция. Это приводит к длительному "замиранию" прогресс-бара, что вызывает некоторый дискомфорт в работе пользователя.
Предлагаемое оешение (см. файл вложения) содержит демонстрационный пример: рабочая книга Excel с макросами и скрипт на Autoit. При исполнении рабочего приложения я использую откомпилированный вариант скрипта (предлагаю перед прогоном примера откомпилировать приложенный в архиве скрипт в исполнимый файл .exe средствами Autoit).
Смысл реализованного прогресс-бара - добавить возможность асинхронного обновления прогресс-бара. Сначала стартуется макрос из Excel путем нажатия на кнопку "Run Example of APB (Autoit Progress Bar)". Основное Excel-приложение запускает Autoit-скрипт, а далее через системный реестр передает скрипту команды. То есть, основное приложение (VBA/Excel) и сателлит (скрипт на Autoit) работают параллельно. Скрипт в цикле (c конфигурируемой задержкой) читает реестр и выполняет полученные команды. По полученным командам скрипт обновляет прогресс-бар.
Одна из команд - AutoShow - позволяет выполнять автоматическое периодическое обновление прогресс-бара от начального до конечного значения, что позволяет "сгладить" процесс обновления прогресс-бара в случае длительно исполняемого процесса на стороне Excel-приложения.
В архив входят рабочая книга, скрип и краткое описание процесса взаимодействия Excel-приложения со скриптом.
Пример не лишен недостатков, в частности, взаимодействие Excel и Autoit могло бы быть реализовано более эффективным способом (буду рад вашим предложениям с с примерами реализации такого взаимодействия).
Код/Пример:
Файл: http://
Снимок:
История версий:
Источник:
Автор(ы):
Версия:3.3.6.1
Категория: Автоматизация, Интеракция, Система / Реестр, Элементы GUI, Разное
Описание:
Для приложений, написанных на Excel/VBA существует достаточно много примеров реализации прогресс-бара, напр., http://spreadsheetpage.com/index.php/tip/displaying_a_progress_indicator/.
На практике встречаются ситуации, когда выполняется длительная команда для Excel (напр., обновление рабочей книги или обновление сводной таблицы данными с OLAP-сервера). В таких ситуациях прогресс-бар не может обновляться, пока не закончена длительная операция. Это приводит к длительному "замиранию" прогресс-бара, что вызывает некоторый дискомфорт в работе пользователя.
Предлагаемое оешение (см. файл вложения) содержит демонстрационный пример: рабочая книга Excel с макросами и скрипт на Autoit. При исполнении рабочего приложения я использую откомпилированный вариант скрипта (предлагаю перед прогоном примера откомпилировать приложенный в архиве скрипт в исполнимый файл .exe средствами Autoit).
Смысл реализованного прогресс-бара - добавить возможность асинхронного обновления прогресс-бара. Сначала стартуется макрос из Excel путем нажатия на кнопку "Run Example of APB (Autoit Progress Bar)". Основное Excel-приложение запускает Autoit-скрипт, а далее через системный реестр передает скрипту команды. То есть, основное приложение (VBA/Excel) и сателлит (скрипт на Autoit) работают параллельно. Скрипт в цикле (c конфигурируемой задержкой) читает реестр и выполняет полученные команды. По полученным командам скрипт обновляет прогресс-бар.
Одна из команд - AutoShow - позволяет выполнять автоматическое периодическое обновление прогресс-бара от начального до конечного значения, что позволяет "сгладить" процесс обновления прогресс-бара в случае длительно исполняемого процесса на стороне Excel-приложения.
В архив входят рабочая книга, скрип и краткое описание процесса взаимодействия Excel-приложения со скриптом.
Пример не лишен недостатков, в частности, взаимодействие Excel и Autoit могло бы быть реализовано более эффективным способом (буду рад вашим предложениям с с примерами реализации такого взаимодействия).
Код/Пример:
Код:
Файл: http://
Снимок:
История версий:
Источник:
Автор(ы):