Отправляет email-рассылки с помощью сервиса Sendsay

Delphi. Уроки

  Все выпуски  

Уроки программирования по Delphi.


Служба Рассылок Subscribe.Ru

Delphi. Библиотека VCL. Уроки по программированию с сайта http://progs.biz

Рассылка №7

Delphi. VCL. Урок 15. Запуск других приложений.

Полные версии уроков (с картинками) можно найти по адресу
Урок 15. Запуск других приложений.

Изучаем Delphi. Библиотека VCL. Урок 15. Запуск других приложений

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

Сначала используем функцию ShellExecute. Для нее пример достаточно распространенный - мы сделаем гиперссылку на форме. Щелкаешь на ней - и оказываешься на некотором сайте. Часто такую ссылку можно видеть в окошке About. Для использования функции ShellExecute прежде всего добавляем ShellAPI в секцию 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://progs.biz',
   nil, nil, SW_SHOWNORMAL)
end;
 ...

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

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

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

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

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

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

  ...
  ShellExecute(Form1.Handle, 'open', 'notepad.exe',
   'D:\test.txt', nil, SW_SHOWNORMAL)
  ...

Откроется файл test.txt на диске D:, как и ожидается.

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

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

  ...
  WinExec('notepad.exe',SW_SHOWNORMAL)
  ...

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

Наверх

Copyright Алексеев Игорь, 2002

Copyright сайт progs.biz, 2002


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное