Добавить комментарий

Delphi

Запуск внешних программ при помощи ShellExecute

ShellExecute - это обёртка над процедурами из shell32.dll. Она позволяет выполнять на объектами действия, зарегистрированные для них в оболочке Windows.

function ShellExecute(Handle: HWND; Operation, FileName, Parameters, Directory: LPWSTR; ShowCmd: Integer): HINTS; stdcall;

Handle - Хэндл родительского окна, которое будет получать сообщения от запускаемого приложения. Можно использовать хэндл формы.

Operation - Операция, которая будет выполнена над файлом. Допустимые значения:

edit Открывает файл в редакторе, который зарегистрирован для файлов этого типа. Если FileName не документ, вызов функции приведёт к ошибке.
explore Открывает в проводнике папку, указанную в FileName.
find Начинает поиск FileName в папке Directory
open Открыть FileName зарегистрированной для этого программой. Если FileName - это URL, он будет открыт в браузере, если исполняемая программа - будет запущена.
print Напечатает файл. Если FileName не документ, вызов функции приведёт к ошибке.
null Указание пустой строки вместо команды приведёт к выполнению действия по умолчанию. Если для документа не зарегистрировано действие по умолчанию, будет выполнен 'open'.

FileName - Объект, над которым выполняется действие. Может быть файлом, папкой, URL-ом.

Parameters - Если FileName будет искполняемым файлом, эта строка будет передана как параметры.

Directory - Рабочая папка. Для команды 'find' позволяет указать место начала поиска, для запуска - задать рабочую папку, отличающуюся от расположения файла.

ShowCmd - определяет режим видимости.

Константа Число Действие
SW_HIDE 0 Запущенное окно будет скрытым.
SW_MAXIMIZE 3 Запущенное окно будет распахнуто на весь экран.
SW_MINIMIZE 6 Запустить в свёрнутом окне.
SW_SHOW 5 Окно получит текущий размер и положение.
SW_SHOWNOACTIVATE 4 Новое окно отобразится, но фокус ввода останется у прежнего окна.

Остальные константы можно посмотреть в модуле Windows или в документации Microsoft.

Если команда выполнена успешно, функция возвращает 0. В случае ошибки возвращается ERROR_FILE_NOT_FOUND, ERROR_PATH_NOT_FOUND, ERROR_BAD_FORMAT (определены в WinApi.Windows) или одна из ошибок SE_ERR... полный перечень которых можно посмотреть в WinApi.ShellApi

 

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Допустимые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и абзацы переносятся автоматически.
  • Вы можете цитировать другие сообщения, используя тэг [quote]

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и абзацы переносятся автоматически.