WEBCOMP.UCOZ.RU Пятница, 2024-03-29, 16:17
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Windows XP [8]
Безопасность [4]
Интернет [3]
Delphi [2]
Assembler [0]
C, C++ [0]
Visual Basic [0]
PHP [0]
Perl [0]
JavaScript [1]
HTML, DHTML [2]
Web дизайн [3]
Хостинг [0]
Раскрутка [2]

Наш опрос
Оцените мой сайт
Всего ответов: 81

Главная » Статьи » Delphi

Запуск программ из Delphi

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

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

uses ShellApi;
...
ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);

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

ShellExecute(Handle,'open', 'c:\windows\notepad.exe','c:\text.txt',
     nil, SW_SHOWNORMAL);

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

ShellExecute(Handle,'open','c:\archive', nil, nil, SW_SHOWNORMAL);

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

ShellExecute(Handle, 'open','c:\MyDocuments\Letter.doc',nil,nil,SW_SHOWNORMAL);

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

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

- Послать сообщение по электронной почте

var em_subject, em_body, em_mail : string;
begin
  em_subject := 'This is the subject line';
  em_body := 'Message body text goes here';  em_mail := 'mailto:alex@fitkursk.ru?subject=' +
 em_subject + '&body=' + em_body ;  ShellExecute(Handle,'open',PChar(em_mail), nil, nil, SW_SHOWNORMAL);
end;

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

// фрагмент кода запускает калькулятор и
// выдает сообщение, когда он закрывается
uses ShellApi;
...
var
  SEInfo: TShellExecuteInfo;
  ExitCode: DWORD;
  ExecuteFile, ParamString, StartInString: string;
begin
  ExecuteFile:='c:\Windows\Calc.exe';

  FillChar(SEInfo, SizeOf(SEInfo), 0);
  SEInfo.cbSize := SizeOf(TShellExecuteInfo);
  with SEInfo do begin
    fMask := SEE_MASK_NOCLOSEPROCESS;
    Wnd := Application.Handle;
    lpFile := PChar(ExecuteFile);
   {
     ParamString can contain the
     application parameters.
   }
 // lpParameters := PChar(ParamString);
   {
     StartInString specifies the
     name of the working directory.
     If ommited, the current directory is used.
   }
// lpDirectory := PChar(StartInString);
    nShow := SW_SHOWNORMAL;
  end;
  if ShellExecuteEx(@SEInfo) then begin
    repeat
      Application.ProcessMessages;
      GetExitCodeProcess(SEInfo.hProcess, ExitCode);
    until (ExitCode <> STILL_ACTIVE) or Application.Terminated;
    ShowMessage('Calculator terminated');
  end
  else ShowMessage('Error starting Calc!');
end;


Источник: http://www.progers.ru/
Категория: Delphi | Добавил: Admin (2006-05-29)
Просмотров: 1949 | Комментарии: 28 | Рейтинг: 0.0/0 |

Всего комментариев: 0
Имя *:
Email *:
Код *:
Форма входа

Поиск

Друзья сайта

Статистика

Copyright MyCorp © 2024Бесплатный хостинг uCoz