EXECCONSOLEAPP — различия между версиями

Материал из GB wiki
Перейти к: навигация, поиск
 
Строка 7: Строка 7:
 
EXECCONSOLEAPP(`start`, '''Файл''', Режим)<br/>
 
EXECCONSOLEAPP(`start`, '''Файл''', Режим)<br/>
 
Вариант 2 – запуск консольного приложения<br/>
 
Вариант 2 – запуск консольного приложения<br/>
EXECCONSOLEAPP('''Командная строка''', Режим ожидания)
+
EXECCONSOLEAPP('''Командная строка''', Режим ожидания, Флаги)
 
|Аргументы=
 
|Аргументы=
 
{{Аргумент
 
{{Аргумент
Строка 56: Строка 56:
 
*1 – условное ожидание. Форма, с которой произведен вызов, становится недоступной, но можно работать в других. По окончании работы внешней программы недоступная форма становится вновь доступной;
 
*1 – условное ожидание. Форма, с которой произведен вызов, становится недоступной, но можно работать в других. По окончании работы внешней программы недоступная форма становится вновь доступной;
 
*2 – без ожидания.
 
*2 – без ожидания.
Стандартный вывод консольных приложений, запущенных через ExecConsoleApp в режиме с ожиданием (0 и 1), перехватывается и записывается в переменную ''':AppStdOut'''
+
При значениях режима ожидания 0 и 1 результат вызова - это exitcode процесса.
 +
}}<br/>
 +
{{Аргумент
 +
|Название=Флаги
 +
|Пояснение=целое число (битовая маска):
 +
*Bin(0 or 1) – скрыть окно консоли;
 +
*Bin(0 or 2) – вернуть стандартный вывод (stdout). Не всегда работает надёжно, поэтому можно перенаправить вывод в файл, а затем читать из него.
 +
 
 +
Стандартный вывод консольных приложений, запущенных через ExecConsoleApp в режиме с ожиданием (0 и 1) и флагом Bin(0 or 2), перехватывается и записывается в переменную ''':AppStdOut'''
 
}}
 
}}
 
|Результат=Целое число
 
|Результат=Целое число

Текущая версия на 11:05, 27 ноября 2019

Выполняет внешнее приложение. Возвращает код завершения приложения, помещает его текстовый вывод в переменную :AppStdOut

Синтаксис

Вариант 1 - выполнение операции над указанным файлом, используя приложение по умолчанию
EXECCONSOLEAPP(`shellexecute`, Операция, Файл, Параметры, Путь к файлу, Вид окна)
либо (упрощенный вариант)
EXECCONSOLEAPP(`start`, Файл, Режим)
Вариант 2 – запуск консольного приложения
EXECCONSOLEAPP(Командная строка, Режим ожидания, Флаги)

Аргументы

Операция
Одна из операций Windows, варианты:
  • `find` – стандартный поиск Windows (файлов, папок, компьютеров и т.д.). Файл - путь к папке, начиная с которой выполняется поиск, остальные параметры не используются.
  • `explore` – стандартный проводник Windows. Файл - путь к папке, на которой открывается проводник, остальные параметры не используются.
  • `edit` – редактирование файла в приложении по умолчанию
  • `open` – открытие файла в приложении по умолчанию
  • `print`,`printto` – печать файла из приложения по умолчанию
Файл
Имя файла, с которым следует выполнить операцию.
Параметры
Список параметров, передаваемых загружаемому приложению. Например, для операции printto параметром может быть имя принтера
Путь к файлу
Путь к файлу, указанному в параметре Файл. Если Файл уже содержит путь, то Путь=пустая строка
Вид окна
Вид окна приложения (необязательный параметр):
  • 0 (`SW_HIDE`) - скрывает окно загружаемого приложения и активизирует другое окно;
  • 1 (`SW_SHOWNORMAL`) - отображает главное окно приложения и делает его активным. Если окно приложения минимизировано или максимизировано, Windows восстанавливает его первоначальный размер и позицию;
  • 2 (`SW_SHOWMINIMIZED`) - окно загружаемого приложения минимизировано;
  • 3 (`SW_MAXIMIZE`) - раскрывает окно приложения на весь экран и делает его активным;
  • 4 (`SW_SHOWNOACTIVATE`) - отображает окно приложения в его последних сохранённых размерах, но не делает его активным.
Командная строка
строка, полный или относительный путь к исполняемому файлу, а также аргументы командной строки (ключи).
Для вызова команд ОС нужно использовать синтаксис «cmd /c <команда>».
Режим
строка, режим запуска Windows-приложения для функции ShellExecute:
  • `open` – открытие документа
  • `print` – печать документа.
Режим ожидания
целое число:
  • 0 – с ожиданием. Никакие формы ГБ недоступны до окончания работы внешней программы;
  • 1 – условное ожидание. Форма, с которой произведен вызов, становится недоступной, но можно работать в других. По окончании работы внешней программы недоступная форма становится вновь доступной;
  • 2 – без ожидания.

При значениях режима ожидания 0 и 1 результат вызова - это exitcode процесса.

Флаги
целое число (битовая маска):
  • Bin(0 or 1) – скрыть окно консоли;
  • Bin(0 or 2) – вернуть стандартный вывод (stdout). Не всегда работает надёжно, поэтому можно перенаправить вывод в файл, а затем читать из него.

Стандартный вывод консольных приложений, запущенных через ExecConsoleApp в режиме с ожиданием (0 и 1) и флагом Bin(0 or 2), перехватывается и записывается в переменную :AppStdOut

Тип результата

Целое число

Примеры

Запустит "Блокнот":

ExecConsoleApp(`start`, `notepad`)

Удалит из папки c:\temp все файлы:

ExecConsoleApp(`cmd /c del c:\temp\*.txt`, 2)

Запустит проводник Windows и отобразит в нём папку "e:\1\":

ExecConsoleApp(`shellexecute`, `explore`, `e:\1\`, ``, ``, `SW_SHOWNORMAL`)

Запустит winrar.exe, который создаст архив C:\myarchive.rar и заархивирует файл "C:\Program Files\WinRAR\WinRAR.chm":

ExecConsoleApp(`shellexecute`,
               `open`,
               `"C:\Program Files\WinRAR\WinRAR.exe"`,
               `a C:\myarchive.rar "C:\Program Files\WinRAR\WinRAR.chm"`,
               ``
)

Печать на выбранный принтер (работает не со всеми типами документов, вопросы - к Microsoft)

ExecConsoleApp(
  `shellexecute`,
  `printto`,
  `E:\Temp\1.doc`,
  `\\AGENT007\hpLJ1010HB`,
  0,
  `SW_HIDE`
)