.. currentmodule:: TatInternalObject Процессы ====================================================================== .. pas:function:: ShellExecute(Operation, FileName, Parameters: Variant; ChoiseMode: TbtkFileChoiseMode) Выполняет указанное действие (*Operation*) над файлом средствами ОС Windows. Подробнее: :ref:`work_with_files` :param Variant Operation: действие, которое необходимо выполнить над указанным файлом (или папкой): edit открыть документ на редактирование редактором по умолчанию explore открыть каталог *FileName* open открыть print отправить файл на печать .. attention:: * Для корректной работы параметра требуется установленный :ref:`плагин Gs3-browser-cmd ` версии 0.19.4 и выше :param Variant FileName: полное имя открываемого или исполняемого файла. :param Variant Parameters: параметры командной строки, передаваемые исполняемому файлу. Передача параметров не предполагается, если файл не исполняемый, в этом случае генерируется исключение. :param TbtkFileChoiseMode ChoiseMode: Режим выбора приложения для открытия файла. Необязателен. По-умолчанию *fcmByExtension*. .. attention:: На текущий момент, переданое значение игнорируется и используется режим *fcmByExtension*. .. code-block:: delphi :caption: Пример использования //Открыть текстовый документ на просмотр. Будет показан диалог выбора приложения ShellExecute('open', '...\test.txt', '', fcmAlwaysWithDialog); //Распечатать текстовый документ ShellExecute('print', '...\test.txt', ''); //Открыть текущий каталог в Explorer-е ShellExecute('explore', '.\', ''); .. attention:: * Для корректной работы метода требуется установленный :ref:`плагин Gs3-browser-cmd ` .. pas:function:: ShellExec(Filename, Parameters: String; Wait: Boolean; ChoiseMode: TbtkFileChoiseMode) Запускает на выполнение файл средствами ОС Windows. :param String Filename: Полное имя открываемого или исполняемого файла. :param String Parameters: Параметры командной строки, передаваемые исполняемому файлу. Передача параметров поддерживается только при запуске исполняемого файла, в противном случае генерируется исключение. :param Boolean Wait: Модальность открытия файла. Если True, перед дальнейшим выполнением скрипта ожидается завершение операции над файлом. :param TbtkFileChoiseMode ChoiseMode: Режим выбора приложения для открытия файла. Необязателен. По-умолчанию *fcmByExtension*. .. attention:: На текущий момент, переданое значение игнорируется и используется режим *fcmByExtension*. .. note:: На ОС Windows 8+ метод может вызвать исключение EbtkFileWatcherException в случае, если файл открыт средством просмотра документов (фотографий) в модальном режиме. Шаблон обработки этого исключения см. в примере. .. note:: Режим ожидания закрытия файла в случае указания ``Wait = True`` определяется автоматически. Если при открытии создается новый процесс, то ожидается завершение этого процесса. Если же процесса не создается, то ожидание происходит по критерию занятости файла внешней программой. Ручное задание этого режима предусмотрено в методе :pas:class:`TbtkScriptSelectionObject.BlobOpenEx2`. .. code-block:: delphi :caption: Пример использования try ShellExec('...\test.txt', '', True, fcmAlwaysWithDialog); except if not SameText(LastExceptionClassName, 'EbtkFileWatcherException') then raise(LastExceptionMessage); end; .. attention:: * Для корректной работы метода требуется установленный :ref:`плагин Gs3-browser-cmd ` .. seealso:: :pas:meth:`ShellExecEx2` :ref:`work_with_files` .. pas:function:: ShellExecEx2(Filename, Parameters: String; Wait: Boolean; ChoiseMode: TbtkFileChoiseMode; Selection: TbtkScriptSelectionObject; CallbackOperation: string; Mode: TbtkWatcherMode; ExecOperOnClose: Boolean) Запускает на выполнение файл средствами ОС Windows. По окончании выполнения/редактирования файла выполняет операцию выборки. :param String Filename: Полное имя открываемого или исполняемого файла. :param String Parameters: Параметры командной строки. Передача параметров поддерживается только при запуске исполняемого файла, в противном случае генерируется исключение. :param Boolean Wait: Модальность открытия файла. Если True, перед дальнейшим выполнением скрипта ожидается завершение операции над файлом. :param TbtkFileChoiseMode ChoiseMode: Режим выбора приложения для открытия файла. .. attention:: На текущий момент, переданое значение игнорируется и используется режим *fcmByExtension*. :param TbtkScriptSelectionObject Selection: Выборка, из которой берётся Callback-операция. :param string CallbackOperation: Название Callback-операции в выборке **Selection**, которая будет вызвана по завершении редактирования файла. Операция вызывается только если после редактирования файл изменился, либо если параметр **ExecOperOnClose** = **True**. :param TbtkWatcherMode Mode: Необязательный параметр. Режим определения окончания редактирования файла. Значение по умолчанию: **wmAuto**. .. attention:: На текущий момент, переданое значение игнорируется и используется режим *wmAuto*. :param Boolean ExecOperOnClose: Необязательный параметр. Указывает на то, что Callback-операция должна быть вызвана независимо от того, изменился ли файл. Значение по умолчанию: **False**. .. note:: На ОС Windows 8+ метод может вызвать исключение EbtkFileWatcherException в случае, если файл открыт средством просмотра документов (фотографий) в модальном режиме. Шаблон обработки этого исключения см. в примере. .. code-block:: delphi :caption: Пример использования try ShellExecEx2('...\test.txt', '', True, fcmAlwaysWithDialog, Selection, 'opCallback', wmAuto, True); except if not SameText(LastExceptionClassName, 'EbtkFileWatcherException') then raise(LastExceptionMessage); end; .. attention:: * Для корректной работы метода требуется установленный :ref:`плагин Gs3-browser-cmd ` .. seealso:: :pas:meth:`ShellExec` :ref:`work_with_files` TbtkFileChoiseMode ---------------------------------------------------------------------- .. pas:class:: TbtkFileChoiseMode Перечисление. Режим выбора приложения для открытия файла. .. pas:attribute:: fcmByExtension приложение выбирается редактором по умолчанию, определяемому по расширению файла. В случае, если для этого расширения редактор не указан, выводится соответствующее информационное сообщение; .. pas:attribute:: fcmByExtensionOrDialog приложение выбирается редактором по умолчанию, а если он не задан, то показывается окно его выбора из списка установленных программ. .. pas:attribute:: fcmAlwaysWithDialog в любом случае показывается окно выбора приложения для открытия файла. .. attention:: * На текущий момент, :term:`Application Server` поддерживает только режим *fcmByExtension* * Управление данной опцией не допускается для исполняемых файлов (\*.exe) и при открытии каталога (explore). Кроме того, если при отправке файла на печать (print) расширение файла неизвестно и режим выбора приложение равен fcmByExtensionOrDialog или fcmAlwaysWithDialog, после показа окна выбора приложения файл откроется, но на печать отправлен не будет. Печать файла необходимо будет вызвать вручную, из интерфейса редактора.