|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
09.09.2017, 10:55 | #1 |
Форумчанин
Регистрация: 12.11.2009
Сообщений: 258
|
Запуск и ожидание конца работы внешнего скрипта (autoit)
Необходимо из Excel запускать скрипт Autoit.
Скрипт запускает внешнее приложение, кликает в нужных местах экрана пару ра, сохраняет картинки результата. Запускается скрипт командой shell Dim runscript runscript = Shell("C:\Program Files (x86)\AutoIt3\AutoIt3_x64.exe G:\calc_AD3.au3") Все работает отлично пока запуск один. Но мне нужно сделать цикл с запуском этого самого скрипта. Сам скрипт собственно не важен. Важно дождаться конца его работы (т.е не запускать скрипт по новой пока не отработает старый) для контроля решил использовать ячейку в екселе. Перед началом работы скрипта задаю ей 1, во внешнем скрипте задаю 0 _Excel_RangeWrite($oWorkbook, "0", "A2", 0) ;это показывает что расчет окончен В самом VBA макросе задаю ожидание Код:
т.е счетчик крутится бесконечно, но стоит оборвать выполнение VBA макроса - корректно запускается и отрабатывает внешний скрипт. Так чего я не понимаю в работе команды shell ? |
09.09.2017, 13:29 | #2 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
да, в одном экземпляре Excel не могут одновременно выполняться 2 макроса
вам нужно открыть еще один экземпляр Excel и уже в нем открыть след файл - тогда сможете получить два параллельных процесса.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
09.09.2017, 14:21 | #3 |
Форумчанин
Регистрация: 12.11.2009
Сообщений: 258
|
но речь не идет об одновременной работе.
мне нужно последовательно N раз запустить внешний скрипт через shell. Причем каждый раз дожидаясь конца работы этого внешнего скрипта. |
09.09.2017, 14:57 | #4 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
ну, раз надо, что тут поделаешь...
последовательно N раз откройте НОВЫЙ экземпляр Excel откройте в нем нужный файл и сделайте там все, что нужно понимаете, в Windows можно открыть 1 Excel и в нем открыть 100 файлов, а можно открыть 100 Excel-ей и в каждом открыть по одному файлу. эти два режима работы с сотней файлов допускаются системой, но принципиально отличаются между собой по количеству сьеденных в результате ресурсов и по последующим способам взаимоотношений между одновременно открытыми 100 файлами.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
09.09.2017, 15:28 | #5 | |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Причем тут Эксели? Вы сообщение автора читали?
Он хочет, чтоб Shell был не асинхронным (ждал завершения программы). В мсдн по VB.NET у него вроде бы есть параметр для этого. А вот в офисе как я понял нет https://support.office.com/en-us/art...6-6832eadd3c63 Но почему-то написано Цитата:
Гугл советует WshShell.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
|
09.09.2017, 15:40 | #6 | |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
я сам в шоке
Цитата:
а во все буквы действительно не вчитывался и мог не правильно понять вопрос. такое бывает)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
|
09.09.2017, 15:45 | #7 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Я про экземпляры Экселя.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
09.09.2017, 16:00 | #8 |
Форумчанин
Регистрация: 12.11.2009
Сообщений: 258
|
Еще раз
Есть документ Excel (поэтому я и в разделе екселя) с данными и макросами. Один из макросов запускает внешний скрипт (Autoit) для работы с внешним приложением. Вот этот макрос нужно запускать в цикле, предварительно дожидаясь конца работы внешнего скрипта. Почему-то это не работает так как я ожидал. Внешнее приложение запускается только после того как макрос запустивший его заканчивается. Почему это так и что с этим делать ? |
09.09.2017, 16:03 | #9 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Прочитать сообщение #5.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
09.09.2017, 16:59 | #10 |
Участник клуба
Регистрация: 02.05.2010
Сообщений: 1,390
|
Код:
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728 |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Запуск внешнего exe | vaximan | Помощь студентам | 3 | 29.07.2014 13:08 |
VBA Excel:Работа скрипта до конца таблицы | student2008 | Microsoft Office Excel | 7 | 17.05.2013 08:51 |
Запуск скрипта Python и ожидание его отработки | Stilet | Win Api | 7 | 21.11.2012 14:59 |
Запуск внешнего приложения с функцией | Viru$174 | C# (си шарп) | 4 | 24.02.2011 00:40 |
Запуск внешнего приложения | Fia | Общие вопросы Delphi | 13 | 18.09.2008 07:27 |