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

Материал из GB wiki
Перейти к: навигация, поиск
 
 
(не показано 9 промежуточных версий 2 участников)
Строка 2: Строка 2:
 
|Название=EXECCONSOLEAPP
 
|Название=EXECCONSOLEAPP
 
|Описание=Выполняет внешнее приложение. Возвращает код завершения приложения, помещает его текстовый вывод в переменную :AppStdOut
 
|Описание=Выполняет внешнее приложение. Возвращает код завершения приложения, помещает его текстовый вывод в переменную :AppStdOut
|Синтаксис=Вариант 1 - запуск WINDOWS-приложения<br/>
+
|Синтаксис=Вариант 1 - выполнение операции над указанным файлом, используя приложение по умолчанию<br/>
EXECCONSOLEAPP (`start`,'''Командная строка''',Режим)<br/>
+
EXECCONSOLEAPP(`shellexecute`, '''Операция''', '''Файл''', '''Параметры''', '''Путь к файлу''', Вид окна)<br/>
 +
либо (упрощенный вариант)<br/>
 +
EXECCONSOLEAPP(`start`, '''Файл''', Режим)<br/>
 
Вариант 2 – запуск консольного приложения<br/>
 
Вариант 2 – запуск консольного приложения<br/>
EXECCONSOLEAPP ('''Командная строка''',Режим ожидания)
+
EXECCONSOLEAPP('''Командная строка''', Режим ожидания, Флаги)
 
|Аргументы=
 
|Аргументы=
 +
{{Аргумент
 +
|Название=Операция
 +
|Пояснение=Одна из операций Windows, варианты:
 +
*`find` – стандартный поиск Windows (файлов, папок, компьютеров и т.д.). Файл - путь к папке, начиная с которой выполняется поиск, остальные параметры не используются.
 +
*`explore` – стандартный проводник Windows. Файл - путь к папке, на которой открывается проводник, остальные параметры не используются.
 +
*`edit` – редактирование файла в приложении по умолчанию
 +
*`open` – открытие файла в приложении по умолчанию
 +
*`print`,`printto` – печать файла из приложения по умолчанию
 +
}}<br/>
 +
{{Аргумент
 +
|Название=Файл
 +
|Пояснение=Имя файла, с которым следует выполнить операцию.
 +
}}<br/>
 +
{{Аргумент
 +
|Название=Параметры
 +
|Пояснение=Список параметров, передаваемых загружаемому приложению. Например, для операции printto параметром может быть имя принтера
 +
}}<br/>
 +
{{Аргумент
 +
|Название=Путь к файлу
 +
|Пояснение=Путь к файлу, указанному в параметре Файл. Если Файл уже содержит путь, то Путь=пустая строка
 +
}}<br/>
 +
{{Аргумент
 +
|Название=Вид окна
 +
|Пояснение=Вид окна приложения (необязательный параметр):
 +
*0 (`SW_HIDE`) - скрывает окно загружаемого приложения и активизирует другое окно;
 +
*1 (`SW_SHOWNORMAL`) - отображает главное окно приложения и делает его активным. Если окно приложения минимизировано или максимизировано, Windows восстанавливает его первоначальный размер и позицию;
 +
*2 (`SW_SHOWMINIMIZED`) - окно загружаемого приложения минимизировано;
 +
*3 (`SW_MAXIMIZE`) - раскрывает окно приложения на весь экран и делает его активным;
 +
*4 (`SW_SHOWNOACTIVATE`) - отображает окно приложения в его последних сохранённых размерах, но не делает его активным.
 +
}}<br/>
 
{{Аргумент
 
{{Аргумент
 
  |Название=Командная строка
 
  |Название=Командная строка
  |Пояснение=строка, полный или относительный путь к исполняемому файлу, а также аргументы командной строки (ключи). Для вызова команд ОС нужно использовать синтаксис «cmd команда».
+
  |Пояснение=строка, полный или относительный путь к исполняемому файлу, а также аргументы командной строки (ключи).
 +
:Для вызова команд ОС нужно использовать синтаксис '''«cmd /c <команда>»'''.
 
}}<br/>
 
}}<br/>
 
{{Аргумент
 
{{Аргумент
Строка 20: Строка 53:
 
  |Название=Режим ожидания
 
  |Название=Режим ожидания
 
  |Пояснение=целое число:
 
  |Пояснение=целое число:
*0 – с ожиданием. Никакие формы ГБ недоступны до окончания работы внешней программы.
+
*0 – с ожиданием. Никакие формы ГБ недоступны до окончания работы внешней программы;
*1 – условное ожидание. Форма, с которой произведен вызов, становится недоступной, но можно работать в других. По окончании работы внешней программы недоступная форма становится вновь доступной.
+
*1 – условное ожидание. Форма, с которой произведен вызов, становится недоступной, но можно работать в других. По окончании работы внешней программы недоступная форма становится вновь доступной;
 
*2 – без ожидания.
 
*2 – без ожидания.
 +
При значениях режима ожидания 0 и 1 результат вызова - это exitcode процесса.
 +
}}<br/>
 +
{{Аргумент
 +
|Название=Флаги
 +
|Пояснение=целое число (битовая маска):
 +
*Bin(0 or 1) – скрыть окно консоли;
 +
*Bin(0 or 2) – вернуть стандартный вывод (stdout). Не всегда работает надёжно, поэтому можно перенаправить вывод в файл, а затем читать из него.
 +
 +
Стандартный вывод консольных приложений, запущенных через ExecConsoleApp в режиме с ожиданием (0 и 1) и флагом Bin(0 or 2), перехватывается и записывается в переменную ''':AppStdOut'''
 
}}
 
}}
 
|Результат=Целое число
 
|Результат=Целое число
|Пример=EXECCONSOLEAPP(`start`,`notepad`)<br/>
+
|Пример=Запустит "Блокнот":
EXECCONSOLEAPP(`cmd /c del c:\temp\*.txt`,2)
+
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`
 +
)
 
}}
 
}}

Текущая версия на 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`
)