Как в delphi запустить другую программу

На этом уроке изучим запуск других приложений. Иногда из программы на Delphi требуется запустить другую программу. Для этого есть два способа и оба используют API -функции. Первый способ использует функцию API -функцию WinExec , а второй — ShellExecute . Посмотрим на применение этих функций в деле.

Сначала используем функцию ShellExecute . Для нее пример достаточно распространенный — мы сделаем гиперссылку на форме. Щелкаешь на ней — и оказываешься на некотором сайте. Часто такую ссылку можно видеть в окошке About . Для использования функции ShellExecute прежде всего добавляем ShellAPI в секцию uses нашего кода (иначе компилятор ругнется на эту функцию).

Windows, Messages, SysUtils, Variants, Classes, Graphics,

Controls, Forms, Dialogs, StdCtrls, ShellAPI;

Далее помещаем на форме Label , и делаем в нем надпись синей и подчеркнутой (как это и принято для гиперссылки). Делаем двойной щелчок мышью на нашем Label1 для перехода в окно кода.

В обработчике пишем следующий код:

Установка и активация Delphi/Autocom 2016 (Delphi Cars и Delphi Trucks)

procedure TForm1.Label1Click(Sender: TObject);

ShellExecute(Form1.Handle, ‘open’, ‘http: //www.ya.ru’,

nil, nil, SW_SHOWNORMAL)

Запускаем программу, щелкаем на нашей гиперссылке и оказываем на сайте. Все как и ожидалось.

Рассмотрим параметры нашей функции более подробно.

Первый параметр ( Form1.Handle у нас) — это указатель на окно, из которого запускается другое приложение.

Второй параметр (у нас это open ) — показывает, что мы делаем. Значение open для него — самое распространенное. Еще из распространенных значений этот параметр может принимать print (для печати, естественно) и nil (которое фактически тоже самое, что и open ).

Читайте также:
Как проверить телефон на троянские программы

Четвертый параметр (у нас он nil ) — это параметры для запускаемого exe-файла (который должен стоять третьим параметром). Например, сюда можно написать, что за файл мы хотим открыть в Блокноте.

Остальные параметры не столь важны, так что если интересно, то смотрите в help .

Что же до функции WinExec , то она оставлена только для совместимости.

Указанный фрагмент запустит Блокнот.

Всё на этом урок закончен.

Источник: bdrc.ru

Программирование на Delphi

В этой статье вы научитесь применять функцию Windows API ShellExecute. Ее применяют в тех случаях, когда мы, например, хотим открыть файл в соответствии с его расширением, не зная, какая программа ассоциирована с таким файлами. Итак, начнем с простого:

— Запустить блокнот (notepad)

uses ShellApi; . ShellExecute(Handle, ‘open’, ‘c:Windowsnotepad.exe’, nil, nil, SW_SHOWNORMAL);

— Открыть текстовый файл c:text.txt в блокноте

ShellExecute(Handle, ‘open’, ‘c:windowsnotepad.exe’, ‘c:text.txt’, < BR >nil, SW_SHOWNORMAL);

— Показать содержимое каталога c:archive

ShellExecute(Handle, ‘open’, ‘c:archive’, nil, nil, SW_SHOWNORMAL);

— Открыть файл в соответствии с расширение м

Установка и активация Autocom Delphi DS150E cars 2015.Release3

— Открыть html документ в браузере по умолчанию

ShellExecute(Handle, ‘open’, ‘http://src.fitkursk.ru’, nil, nil, SW_SHOWNORMAL);

— Дожидаемся окончания запущенной программы

Программа и Интерфейс — Приложения чужие

Взаимодействие с чужими окнами

Источник: delphibaza.ru

Запуск внешнего приложения и ожидание его завершения

Пример показывает как из Вашей программы запустить внешнее приложение и подождать его завершения.

function ExecAndWait(const FileName, Params: ShortString; const WinState: Word): boolean; export; var StartInfo: TStartupInfo; ProcInfo: TProcessInformation; CmdLine: ShortString; begin < Помещаем имя файла между кавычками, с соблюдением всех пробелов в именах Win9x >CmdLine := ‘»‘ + Filename + ‘» ‘ + Params; FillChar(StartInfo, SizeOf(StartInfo), #0); with StartInfo do begin cb := SizeOf(SUInfo); dwFlags := STARTF_USESHOWWINDOW; wShowWindow := WinState; end; Result := CreateProcess(nil, PChar( String( CmdLine ) ), nil, nil, false, CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil, PChar(ExtractFilePath(Filename)),StartInfo,ProcInfo); < Ожидаем завершения приложения >if Result then begin WaitForSingleObject(ProcInfo.hProcess, INFINITE); < Free the Handles >CloseHandle(ProcInfo.hProcess); CloseHandle(ProcInfo.hThread); end; end;
А вот пример вызова этой функции:
ExecAndWait( ‘C:windowscalc.exe’, », SH_SHOWNORMAL)

Читайте также:
Как установить программу для отчета в налоговой

Параметр FileName = Имя внешней программы. Параметр Params = Параметры, необходимые для запуска внешней программы Параметр WinState = Указывает — как будет показано окно: Для этого параметра мы можем так же использовать следующие константы: SW_HIDE, SW_MAXIMIZE, SW_MINIMIZE, SW_SHOWNORMAL

Источник: thedelphi.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru