Запуск приложений из Delphi

Статьи » Система » Запуск приложений из Delphi

Для запуска приложений из программы можно использовать следующие функции API Windows:

  • ShellExecute - запускает оболочку, ассоциированную с расширением файла, передаваемого ей в качестве параметра. Например, если передать файл с расширением doc, то запустится редактор MS Word (если он установлен в системе). В качестве параметра функции можно передать и файл с раширением exe.;
  • CreateProcess - создает новый процесс и его первичный поток. Данная функция используется в Win32 для запуска других приложений.;
  • WinExec , LoadModule - достались в наследство от Windows 3.x, Microsoft не рекомендует использовать ее в приложениях Win32 (они работают через вызов CreateProcess).

Функция ShellExecute

ShellExecute( hwnd: THandle, // указатель на родительское окноlpOperation: PChar, //выполняемая операцияlpFile: PChar, // файл или папкаlpParameters: PСhar, //строка параметров запускаемой программыlpDirectory: PChar, // директория по умолчаниюnShowCmd: integer // состояние окна запущенной программы);

hwndОпределяет родительское окно, которое будет получать сообщения от запускаемого приложения (например, об ошибке при запуске).

lpOperationОпределяет выполняемую оперерацию.

"open" - открывает файл lpFile. Файл может быть документом, приложением или папкой. "print" - печатает файл lpFile. Файл должен быть документом. Если передано приложение, то выполняются действия, аналогичные "open".

"explore" - открывает папку lpFile в проводнике Windows.

nil - аналогично "open".

lpFileФайл или папка. Функция может открыть или напечатать файл, открыть папку, запустить приложение.

lpParametersЕсли lpFile - приложение, то lpParametrs может содержать строку параметров приложения.

Если lpFile - документ или папка, lpParameters должен быть nil.

nShowCmdОпределяет как должно выглядеть окно запущенного приложения, приведу несколько основных констант, остальные можно посмотреть в Windows SDK.

Константа
Описание
SW_HIDE Скрывает окно.
SW_MAXIMIZE Разворачивает окно.
SW_MINIMIZE Сворачивает окно.
SW_SHOWMAXIMIZED Активизирует и разворачивает окно.
SW_SHOWMINIMIZED Активизирует и сворачивает окно.
SW_SHOWNORMAL Активизирует и показывает окно в состоянии, определяемым самим приложением.
Примеры использования функции.

Открытие файлов через OpenDialog:procedure TForm1.Button1Click(Sender: TObject);begin  if OpenDialog1.Execute then  ShellExecute(Self.Handle, 'open', PChar(OpenDialog1.FileName), nil, nil, SW_SHOWNORMAL);end;

Открытие IE с заданным URL:ShellExecute(Self.Handle, 'open', 'http://www.delphi.hostmos.ru', nil, nil, SW_SHOWMAXIMIZED);

Запуск почтового клиента:ShellExecute(Self.Handle, 'open', 'mailto:vasya@mail.ru', nil, nil, SW_SHOWNORMAL);

Примечание. Для использования ShellExecute в раздел uses надо добавить модуль ShellAPI.

Другое по теме:

Категории

Статьи

Советы

Copyright © 2022 - All Rights Reserved - www.delphirus.com