Process Oluşturma /Delphide yeni bir Process olusturmak (yani bir uygulama calistirmak) icin bircok farkli yönteminiz olabilir
Eski bir komut olan winexec dahi bu islemi yapabilir.sadece ilgili kaynak
kodunuza

WinExec(calistirilacak uygulama,CM_ACTIVATE);

yazmaniz yeterli bu tabiki en basit ve en kisasi daha farkli bir islem bir yeni bir process 'i adim adim olusturmaktan gecer. bu daha zahmetli windows unitinde tanimlanmis bir fonsiyon kullanacagim
CreateProcess ;
CreateProcess Fonksiyonu ; Asagida görüldügü gibi oldukca bol parametresi olan
bir secenekler kümesi sunuyor ben fazladan bir secenek ekledim. örnekte deneyin ve görün

Function MyWinExec(ProgAditring;Parametre: integer):integer;
var
UygulamaAdi : Array[0..512] of char;
DizinAdi :array[0..255] of char;
UygulamaYolu tring;
BaslangicDeger :TStartupInfo;
ProcessTipi : TProcessInformation;
Begin
StrPCopy(UygulamaAdi,ProgAdi);
GetDir(0,UygulamaYolu);
StrPCopy(DizinAdi,UygulamaYolu);
FillChar(BaslangicDeger,Sizeof(StartupInfo),#0);
BaslangicDeger.cb := Sizeof(StartupInfo);
BaslangicDeger.dwFlags :=STARTF_USESHOWWINDOW;
BaslangicDeger.wShowWindow := Parametre;
if not CreateProcess(nil, UygulamaAdi, nil, nil, false,
CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil, nil,
BaslangicDeger, ProcessTipi) then
Result := -1
else
// burada eger uygulama hala calisiyor ise kendi uygulamamin Process time ini durduruyorum
WaitforSingleObject(ProcessTipi.hProcess,INFINITE) ;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Application.Minimize ;
MyWinExec('Calc.Exe',0);
Application.Restore ;
end;