7. Процессы

ShellExecute(AOperation, AFileName, AParameters: Variant; AChoiseMode: TbtkFileChoiseMode)

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

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

Parameters:
  • AOperation (Variant) --

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

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

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

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

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

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

Parameters:
  • AFilename (String) -- полное имя открываемого или исполняемого файла
  • AParameters (String) -- параметры командной строки, передаваемые исполняемому файлу. Передача параметров поддерживается только при запуске исполняемого файла, в противном случае генерируется исключение.
  • AWait (Boolean) -- флаг, задающий ожидание закрытия файла - открыть модально.
  • AChoiseMode (TbtkFileChoiseMode) -- Режим выбора приложения для открытия файла. Необязателен - по умолчанию fcmByExtensionOrDialog.

Note

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

Note

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

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

7.1. TbtkFileChoiseMode

class TbtkFileChoiseMode

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

fcmByExtension

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

fcmByExtensionOrDialog

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

fcmAlwaysWithDialog

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

Attention

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