Среда, 21.11.2018, 07:24
IMHO - есть мнение?
Главная | RSS
Меню сайта
Категории раздела
Личное [12]
Личный блог
ОСь [3]
Обзор, статьи по различным ОС
Игры [1]
Обзор и статьи про игры
Программы [5]
Обзор, статьи по разным программам
Программирование [6]
1С, Delphi и др.
Железо [3]
Обзор компьютерного железа
Прочее [13]
Различные статья на разные темы
ПДД [3]
ПДД, разбор ситуаций, прочее
Статусы [1]
Статусы для постинга в соцсетях
Случайный опрос
Поддерживаете ли Вы запрет суррогатного материнства?
Всего ответов: 1
Администрация
396-160-722


Внимание спамерам! Антиспамбот включен!
Жизнь сайта
Статистика
Облако тэгов
Реклама
Главная » 2010 » Май » 16 » Запуск программ из Delphi
15:12
Запуск программ из 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', < 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;
Оригинал статьи: http://www.delphisources.ru/pages/faq/base/exec_apps.html
Категория: Программирование | Просмотров: 178 | Добавил: Vurdalak | Теги: delphi | Рейтинг: 0.0/0 | Обсудить
Поиск
Календарь
«  Май 2010  »
ПнВтСрЧтПтСбВс
     12
3456789
10111213141516
17181920212223
24252627282930
31
Архив записей
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Событие

    До Нового Года:
    Погода от GisMeteo
    UBUNTU 12.04
    Все права защищены © 2009-2018 Соколов Денис