Start(RawInfo: IWinShellExecuteInfo);
Start(RawInfo: Prognoz.Platform.Interop.Ui.WinShellExecuteInfo);
RawInfo. Информация о запускаемом процессе.
Метод Start запускает процесс.
Для выполнения примера разместите на форме компоненты: два Button, Label и Timer с наименованиями «Button1», «Button2», «Label1» и «Timer1» соответственно.
Добавьте ссылки на системные сборки: Host, Ui, Forms.
Пример является обработчиком события OnClick для компонента «Button1», OnClick для компонента «Button2», OnTimer для компонента «Timer1».
Class TESTForm: Form
Button1: Button;
Label1: Label;
Timer1: Timer;
Button2: Button;
Process: IProcess;
Info: IShellExecuteInfo;
Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
WinInfo: IWinShellExecuteInfo;
WinProc: IWinProcess;
Begin
WinInfo := New WinShellExecuteInfo.Create;
Info := WinInfo;
Info.Directory := "C:\Program Files\Foresight\Foresight Analytics Platform 9.2";
Info.File := "Studio.exe";
WinProc := New WinProcess.Create;
Process := WinProc;
Process.Start(Info);
Timer1.Enabled := True;
End Sub Button1OnClick;
Sub Timer1OnTimer(Sender: Object; Args: IEventArgs);
Begin
If Process <> Null Then
If Not Process.HasExited Then
Label1.Text := "Процесс выполняется";
Else
Label1.Text := "Процесс завершен. Код завершения(0-Программа завершила выполнение;-1-Программа завершена принудительно):
" + Process.ExitCode.ToString;
End If;
Else
Label1.Text := "Процесс не запущен"
End If;
End Sub Timer1OnTimer;
Sub Button2OnClick(Sender: Object; Args: IMouseEventArgs);
Begin
Process.Kill;
End Sub Button2OnClick;
End Class TESTForm;
После выполнения примера:
При нажатии на кнопку «Button1» будет запущено приложение «Форсайт. Аналитическая платформа».
В компоненте «Label1» будут отображаться сообщения о статусе выполнения приложения.
При нажатии на кнопку «Button2» будет прерван процесс выполнения и приложение завершит свою работу.
См. также: