Разработка программы для запуска на исполнение и закрытие внешнего дочернего процесса, страница 2

end;

procedure TForm1.SpeedButton1Click(Sender: TObject);

begin

    openDialog1.Filter:='Приложение (*.exe)|*.exe';

    if not openDialog1.Execute then

        ShowMessage('Ошибка открытия файла!')

    else

        edApp.Text:=openDialog1.Files.Strings[0];

end;

procedure TForm1.SpeedButton2Click(Sender: TObject);

begin

    openDialog1.Filter:='Презентация PowerPoint (*.ppt)|*.ppt|Документ Word (*.doc)|*.doc|Документ Excel (*.xls)|*.xls';

    if not openDialog1.Execute then

        ShowMessage('Ошибка открытия файла!')

    else

        edFile.Text:=openDialog1.Files.Strings[0];

end;

procedure TForm1.btnStartClick(Sender: TObject);

var startInfo:TStartupInfo;

begin

    FillChar(startInfo,SizeOf(startInfo),#0);

    startInfo.cb:=sizeof(startInfo);

    if edFile.Text='' then

        ShowMessage('Заполните все предлагаемые поля!')

    else  begin

        if not createprocess(nil,PChar(trim(edApp.Text)+' "'+trim(edFile.Text)+'"'),nil,nil,false,NORMAL_PRIORITY_CLASS,

nil,nil,startInfo,procInfo) then

            ShowMessage(IntToStr(GetLastError));

            lblInfo.Caption:='Дескриптор потока:'+#13+IntToStr(procInfo.hThread)+#13+#13+'Глобальный ижентификатор'+#13+IntToStr(procInfo.dwProcessId);

    end;

end;

procedure TForm1.btnCloseClick(Sender: TObject);

var exCode:LongWord;

begin

    if not GetExitCodeProcess(procInfo.hProcess,exCode) then

        ShowMessage('Ошибка завершения процесса'+IntToStr(GetLastError));

    TerminateProcess(procInfo.hProcess,exCode);

    lblInfo.Caption:='';

end;

end.

Список литературы

1.  Встроенная справочная система Delphi.

2.  Сайт http://technet.microsoft.com.