Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

WinExec [D6, WinXP]


TAN ©   (2003-01-29 14:49:00) 

WinExec запускает bat фаил, как приостановить работу программы, до тех пор, пока программы прописанные в бат файле не завершат свою работу.


Андрей Сенченко   (2003-01-29 14:56:00) [1]

Примерно вот так : взял первое попавшееся из FAQ, подходящее к описанной задаче.

procedure TForm1.Button1Click(Sender: TObject);
var
si:STARTUPINFO;
pi:PROCESS_INFORMATION;
cmdline:string;
begin
ZeroMemory(@si,sizeof(si));
si.cb:=SizeOf(si);
cmdline:="c:\command.com";
if not CreateProcess( nil, // No module name (use command line).
PChar(cmdline), // Command line.
nil, // Process handle not inheritable.
nil, // Thread handle not inheritable.
False, // Set handle inheritance to FALSE.
0, // No creation flags.
nil, // Use parent"s environment block.
nil, // Use parent"s starting directory.
si, // Pointer to STARTUPINFO structure.
pi ) // Pointer to PROCESS_INFORMATION structure.
then
begin
ShowMessage( "CreateProcess failed." );
Exit;
end;
WaitForSingleObject( pi.hProcess, INFINITE );
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
ShowMessage("Done !");

end;


Андрей Сенченко   (2003-01-29 14:52:00) [2]

Работать не через WinExec, а через CreateProcess и WaitForSingleObject


Наверх

Титульная страница Поиск, карта сайта Написать письмо