BorlanD Russian Сommunity

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

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

 

uses:

 

uses

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

            Controls, Forms, Dialogs, StdCtrls, ShellAPI;

 

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

 

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

 

procedure TForm1.Label1Click(Sender: TObject);

begin

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

             nil, nil, SW_SHOWNORMAL)

end;

 

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

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

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

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

Третий параметр - это что мы, собственно открываем (печатаем и т. д.). Он может быть как именем конкретного exe (например, notepad.exe), так и именем документа (например, test.doc). В этом случае запустится приложение, ассоциированное с файлом открываемого типа (для *.doc - Word и т. д.). Третье значение для рассматриваемого параметра - это имя папки (например, D:\Delphi).

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

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

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

 

Пример применения:

 

WinExec('notepad.exe',SW_SHOWNORMAL)

 

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

 

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

Просмотров: 10447 | Категория: Delphi 7 | Дата: 11.05.2008