7. Процессы

ShellExecute(Operation, FileName, Parameters: Variant; ChoiseMode: TbtkFileChoiseMode)

Выполняет указанное действие (Operation) над файлом средствами ОС Windows.

Подробнее: Работа с файлами

Parameters:
  • Operation (Variant) –

    действие, которое необходимо выполнить над указанным файлом (или папкой):

    edit
    открыть документ на редактирование редактором по умолчанию
    explore
    открыть каталог FileName
    open
    открыть
    print
    отправить файл на печать
  • FileName (Variant) – полное имя открываемого или исполняемого файла.
  • Parameters (Variant) – параметры командной строки, передаваемые исполняемому файлу. Передача параметров не предполагается, если файл не исполняемый, в этом cлучае генерируется исключение.
  • ChoiseMode (TbtkFileChoiseMode) – Режим выбора приложения для открытия файла. Необязателен. По-умолчанию fcmByExtensionOrDialog.
Пример использования
<pascal>
  //Открыть текстовый документ на просмотр. Будет показан диалог выбора приложения
  ShellExecute('open', '...\test.txt', '', fcmAlwaysWithDialog);

  //Распечатать текстовый документ
  ShellExecute('print', '...\test.txt', '');

  //Открыть текущий каталог в Explorer-е
  ShellExecute('explore', '.\', '');
</pascal>
ShellExec(Filename, Parameters: String; Wait: Boolean; ChoiseMode: TbtkFileChoiseMode)

Запускает на выполнение файл средствами ОС Windows.

Parameters:
  • Filename (String) – Полное имя открываемого или исполняемого файла.
  • Parameters (String) – Параметры командной строки, передаваемые исполняемому файлу. Передача параметров поддерживается только при запуске исполняемого файла, в противном случае генерируется исключение.
  • Wait (Boolean) – Модальность открытия файла. Если True, перед дальнейшим выполнением скрипта ожидается завершение операции над файлом.
  • ChoiseMode (TbtkFileChoiseMode) –

    Необязательный параметр.

    Режим выбора приложения для открытия файла.

    Значение по умолчанию: fcmByExtensionOrDialog.

Note

На ОС Windows 8+ метод может вызвать исключение EbtkFileWatcherException в случае, если файл открыт средством просмотра документов (фотографий) в модальном режиме. Шаблон обработки этого исключения см. в примере.

Note

Режим ожидания закрытия файла в случае указания Wait = True определяется автоматически. Если при открытии создается новый процесс, то ожидается завершение этого процесса. Если же процесса не создается, то ожидание происходит по критерию занятости файла внешней программой. Ручное задание этого режима предусмотрено в методе TbtkScriptSelectionObject.BlobOpenEx2.

Пример использования
<pascal>
  try
    ShellExec('...\test.txt', '', True, fcmAlwaysWithDialog);
  except
    if not SameText(LastExceptionClassName, 'EbtkFileWatcherException') then
      raise(LastExceptionMessage);
  end;
</pascal>
ShellExecEx2(Filename, Parameters: String; Wait: Boolean; ChoiseMode: TbtkFileChoiseMode; Selection: TbtkScriptSelectionObject; CallbackOperation: string; Mode: TbtkWatcherMode; ExecOperOnClose: Boolean)

Запускает на выполнение файл средствами ОС Windows. По окончании выполнения/редактирования файла выполняет операцию выборки.

Parameters:
  • Filename (String) – Полное имя открываемого или исполняемого файла.
  • Parameters (String) – Параметры командной строки. Передача параметров поддерживается только при запуске исполняемого файла, в противном случае генерируется исключение.
  • Wait (Boolean) – Модальность открытия файла. Если True, перед дальнейшим выполнением скрипта ожидается завершение операции над файлом.
  • ChoiseMode (TbtkFileChoiseMode) – Режим выбора приложения для открытия файла.
  • Selection (TbtkScriptSelectionObject) – Выборка, из которой берётся Callback-операция.
  • CallbackOperation (string) – Название Callback-операции в выборке Selection, которая будет вызвана по завершении редактирования файла. Операция вызывается только если после редактирования файл изменился, либо если параметр ExecOperOnClose = True.
  • Mode (TbtkWatcherMode) –

    Необязательный параметр.

    Режим определения окончания редактирования файла.

    Значение по умолчанию: wmAuto.

  • ExecOperOnClose (Boolean) –

    Необязательный параметр.

    Указывает на то, что Callback-операция должна быть вызвана независимо от того, изменился ли файл.

    Значение по умолчанию: False.

Note

На ОС Windows 8+ метод может вызвать исключение EbtkFileWatcherException в случае, если файл открыт средством просмотра документов (фотографий) в модальном режиме. Шаблон обработки этого исключения см. в примере.

Пример использования
<pascal>
  try
    ShellExecEx2('...\test.txt', '', True, fcmAlwaysWithDialog, Selection, 'opCallback', wmAuto, True);
  except
    if not SameText(LastExceptionClassName, 'EbtkFileWatcherException') then
      raise(LastExceptionMessage);
  end;
</pascal>

New in version Global: 5.7.0_ms11

7.1. TbtkFileChoiseMode

class TbtkFileChoiseMode

Перечисление. Режим выбора приложения для открытия файла.

fcmByExtension

приложение выбирается редактором по умолчанию, определяемому по расширению файла. В случае, если для этого расширения редактор не указан, выводится соответствующее информационное сообщение;

fcmByExtensionOrDialog

приложение выбирается редактором по умолчанию, а если он не задан, то показывается окно его выбора из списка установленных программ.

fcmAlwaysWithDialog

в любом случае показывается окно выбора приложения для открытия файла.

Attention

Управление данной опцией не допускается для исполняемых файлов (*.exe) и при открытии каталога (explore). Кроме того, если при отправке файла на печать (print) расширение файла неизвестно и режим выбора приложение равен fcmByExtensionOrDialog или fcmAlwaysWithDialog, после показа окна выбора приложения файл откроется, но на печать отправлен не будет. Печать файла необходимо будет вызвать вручную, из интерфейса редактора.