Недавно добавленные исходники

•  TDictionary Custom Sort  538

•  Fast Watermark Sources  903

•  3D Designer  1 830

•  Sik Screen Capture  1 478

•  Patch Maker  1 486

•  Айболит (remote control)  1 410

•  ListBox Drag & Drop  1 177

•  Доска для игры Реверси  21 921

•  Графические эффекты  1 357

•  Рисование по маске  1 296

•  Перетаскивание изображений  1 096

•  Canvas Drawing  971

•  Рисование Луны  814

•  Поворот изображения  771

•  Рисование стержней  815

•  Paint on Shape  493

•  Генератор кроссвордов  762

•  Головоломка Paletto  667

•  Теорема Монжа об окружностях  855

•  Пазл Numbrix  619

•  Заборы и коммивояжеры  849

•  Игра HIP  557

•  Игра Go (Го)  527

•  Симулятор лифта  549

•  Программа укладки плитки  509

•  Генератор лабиринта  565

•  Проверка числового ввода  524

•  HEX View  600

•  Физический маятник  528

•  Задача коммивояжера  560

 
скрыть


Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Запуск программ из Delphi используя ShellApi



В этой статье вы научитесь применять функцию 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', < BR > 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 + '&amp;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
    beginfMask := SEE_MASK_NOCLOSEPROCESS;
  Wnd := Application.Handle;
  lpFile := PChar(ExecuteFile);
  {ParamString can contain theapplication parameters.}
  // lpParameters := PChar(ParamString);
  {StartInString specifies thename of the working
  directory.If ommited, the current
  directory is used.}
  // lpDirectory := PChar(StartInString);
  nShow := SW_SHOWNORMAL;
end;
if ShellExecuteEx(@SEInfo) then
begin
  repeatApplication.ProcessMessages;
  GetExitCodeProcess(SEInfo.hProcess, ExitCode);
until (ExitCode <> STILL_ACTIVE) or
Application.Terminated;
ShowMessage('Calculator  terminated');
end
else
  ShowMessage('Error starting Calc!');
end;




Похожие по теме исходники

Модуль активации программ

Программа укладки плитки

Delphi Magazine

Tetris DelphiX

 

Quake Delphi Sources

Delphi MMOG

Delphi Яндекс Директ

Delphi to HTML Converter

 

Проверка знаний Delphi

Is Delphi Dying Monitor

Autosave Delphi 7




Copyright © 2004-2022 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте   Facebook   Ссылка на Twitter   Ссылка на Telegram