![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Добрый день.
После того как закроется окошко '<user>' выполняется батник Get.bat, затем идет задержка 1000 секунд, затем выполняется батник Start.bat, потом опять идет задержка 200 сек и затем закрывается окошко C:\Get\Get.exe. Код:
if FindWindow(nil, '<user>') <> 0 then PostMessage(FindWindow(nil, '<user>'), WM_CLOSE, 0, 0); WinExec('Get.bat', SW_SHOW); Delay(1000000); WinExec('Start.bat', SW_SHOW); Delay(200000); if FindWindow(nil, 'C:\Get\Get.exe') <> 0 then PostMessage(FindWindow(nil, 'C:\Get\Get.exe'), WM_CLOSE, 0, 0); Все отлично работает, проблема только в том, что неизвестно как долго будет выполняться батник Get.bat, вот содержимое батника Код:
Start /w C:\user.exe /USER "user" "password" /MOFF /CONNECT "user" /READ /DISCONNECT /SHUTDOWN Как видно из содержимого батника опять открывается окно <user>, выполняются какие-то действия и окошко <user> опять закрывается. Хотелось бы чтобы вместо Delay(1000000) была функция или процедура, которая проверяла бы окончание работы батника и если батник завершил свою работу, т.е. окошко <user> закрылась, то дальше идет выполнение батника Start.bat |
#2
|
||||
|
||||
![]() Код:
procedure CreateProcess(CommandLine: String); var startupinfoa: _STARTUPINFOA; processinformation: _PROCESS_INFORMATION; begin ZeroMemory(@startupinfoa, SizeOf(_STARTUPINFOA)); startupinfoa.cb:=SizeOf(_STARTUPINFOA); startupinfoa.dwFlags:=STARTF_USESHOWWINDOW; startupinfoa.wShowWindow:=SW_SHOW; // SW_HIDE Windows.CreateProcess(nil, PChar(CommandLine), nil, nil, False, 0, nil, nil, startupinfoa, processinformation); WaitForSingleObject(processinformation.hProcess, INFINITE); CloseHandle(processinformation.hProcess); end; begin CreateProcess('z.bat'); end; z.bat: Код:
echo begin ping 127.0.0.1 echo end выход из процедуры CreateProcess произойдет только по окончании выполнения z.bat Пишу программы за еду. __________________ |
#3
|
|||
|
|||
![]() Огромное спасибо NumLock.
Где тут нажать на кнопку "Спасибо" ?. Последний раз редактировалось royun, 29.11.2011 в 09:44. |