gifts2017

shellexec

Опубликовал Николай (nnn) в раздел Программирование - Внешние компоненты

shellexec Version 1.0.3
управление запуском внешних программ
позволяет выполнить все, что может WScript.Shell (в этом контексте)
+ можно запускать внешние программы асинхронно и обрабатывать события завершения работы запущенных программ в ОбработкаВнешнегоСобытия(v7) или в процедуре обработки события (v8)
использование:
CreateObject(\"shellexec.manager\");

Свойства:
cmdline As String
exectype As exectypes
execstyle As execstyles

где:
exectypes:
0 - запуск команды cmdline
1 - запуск: cmd /c cmdline
2 - запуск: command.com /c cmdline (command.com должен быть доступен)

execstyles:
0 - программа в cmdline будет скрыта (по умолчанию)
1 - обычный запуск cmdline
2 - cmdline минимизирована
3 - cmdline максимизирована
4 - обычный запуск cmdline, но без фокуса
6 - cmdline минимизирована без фокуса

waittypes:
0 - запуск синхронно, без ожидания запуска cmdline, при удаче возврат 1
1 - запуск: ожидает запуск cmdline, при удаче возвращает дескриптор открытого окна
2 - запуск: ожидает завершение процесса cmdline, при удаче возвращает 1
3 - запуск: ожидает запуск процесса cmdline, при удаче возвращает дескриптор открытого окна,
а при завершении передаст дескриптор, которое имело окно до закрытия в
v7.7: ОбработкаВнешнегоСобытия()
v8.0: процедуру приема внешнего события

Передача события при использовании параметра 3 обеспечивается через интерфейс AddIn.Messager:
v7.7:
ПодключитьВнешнююКомпоненту(\"AddIn.Messager\");
Messager = CreateObject(\"AddIn.Messager\");
shellexec = CreateObject(\"shellexec.manager\");
shellexec.ExtMessager=Messager;
Необходимо наличие и регистрация Messager.dll: regsvr32 Messager.dll
v8.0:
Форма-Вставить ActiveX: выбрать AddIn.Messager и разместить на форме, присвоить НужноеВамИмя
Форма-Свойства-События-PassEvent: разместить ссылку на процедуру приема внешнего события
shellexec = Новый ComObject(\"shellexec.manager\");
shellexec.ExtMessager=ЭтаФорма.ЭлементыФормы.НужноеВамИмя;

timeout: время задержки ответа execute (иногда м.б. полезно при передаче данных в порт), мс

Регистрация:
shellexec.exe /RegServer
RegSvr32 Messager.dll
Удаление регистрации:
shellexec.exe /UnRegServer
RegSvr32 Messager.dll /u

Если Вы использовали ранее shellexec, при замене версий нужно сначала удалить регистрацию,
затем просто запустить shellexec.exe - регистрация выполнится автоматически

Методы:
execute([cmdline As String], [exectype As Integer], [execstyle As Integer]):
без параметров: запускает cmdline согласно заполненным ранее свойствам
с параметрами: заполняет свойства значениями параметров и запускает cmdline
terminate
завершение работы ActevtX
полностю освобождает память, не ожидая завершения работы 1С

Параметры командной строки: shellexec(cmdline, exectype, execstyle)
выполняет execute(cmdline, exectype, execstyle)

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

Наименование Файл Версия Размер
- 30
.zip 34,91Kb
25.09.09
30
.zip 34,91Kb Бесплатно

См. также

Подписаться Добавить вознаграждение
В этой теме еще нет сообщений.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа