void __fastcall StartProcess()
{
AnsiString sPrgName = "c:winnt
otepad.exe";
AnsiString sWorkDir = "c:winnt";
TProcessInformation prozessinfo;
TStartupInfo startinfo;
startinfo.cb = sizeof(TStartupInfo);
setmem(&startinfo,sizeof(TStartupInfo),0);
if (CreateProcess(NULL, sPrgName.c_str(), NULL, NULL, false, CREATE_DEFAULT_ERROR_MODE | NORMAL_PRIORITY_CLASS, NULL, sWorkDir.c_str(), &startinfo, &prozessinfo) == true)
{
//Speicher freigeben
CloseHandle(prozessinfo.hThread);
//Warteschleife, die PROZESSINFO abfragt
while(WaitForSingleObject(prozessinfo.hProcess, 100) == WAIT_TIMEOUT)
Application->ProcessMessages();
//hier angekommen ist das Programm durch den Benutzer beendet worden
Application->MessageBox("Programm geschlossen!","",MB_OK);
//Speicher freigeben
CloseHandle(prozessinfo.hProcess);
}
}