Приятного времени суток господа!
Через компонент WinExec можно выполнять консольные комманды
для этого мы сначала открываем консоль точкой doConsoleExec
а потом передаем ей строку doConsoleInput и заданная комманда отрабатывается
Все хорошо, но после отработки этой комманды cmd продолжает висеть в памяти
Как можно дождаться исполнения коммады а потом закрыть cmd ?
Заранее спасибо
Этот топик читают: Гость
Ответов: 817
Рейтинг: 52
|
|||
карма: 1 |
|
Разработчик
Ответов: 4698
Рейтинг: 426
|
|||
А так?
|
|||
карма: 10 |
|
Ответов: 817
Рейтинг: 52
|
|||
Assasin,
я ее смогу завершить принудительно только после того как код отработает а как понять что он отработал? это может произойки через 5 сек, а может и через 5 мин Пытаюсь понять свой вопрос так code_13168.txt пока безрезультата |
|||
карма: 1 |
| ||
файлы: 1 | code_13168.txt [1.1KB] [172] |
Ответов: 4641
Рейтинг: 334
|
|||
если программа ждет дальнейших действий, то только:
1. по таймауту закрывать 2. выводить рузультат выполнения команды в мемо и на основании результата закрывать |
|||
карма: 1 |
|
Разработчик
Ответов: 4698
Рейтинг: 426
|
|||
--молчу, упустил название cmd--
------------ Дoбавленo в 13.07: --опередили-- |
|||
карма: 10 |
|
Ответов: 817
Рейтинг: 52
|
|||
Ravilr,
1. ну вот в моем примере комманда ping завершилась и ничего больше не ждет. как быть? 2. резутат не однозначный отследить можно, то только перебором 1500 возможных строк так не пойдет, может есть более универсальные варианты |
|||
карма: 1 |
|
Ответов: 4641
Рейтинг: 334
|
|||
а изменения кол-ва строк в минуту например однозначно?
|
|||
карма: 1 |
|
Ответов: 817
Рейтинг: 52
|
|||
Ravilr писал(а): а изменения кол-ва строк в минуту например однозначно?не понял ваш вопрос можно его перефразировать? |
|||
карма: 1 |
|
Разработчик
Ответов: 4698
Рейтинг: 426
|
|||
карма: 10 |
| ||
файлы: 1 | code_13169.txt [401B] [115] |
Ответов: 817
Рейтинг: 52
|
|||
Assasin писал(а): А можно сделать проверку выдачи результата(как предложил Ravilr, если я не ошибся):
code_13169.txt это понятно, что так можно, но... Результатом является несколько сторок их может быть 5, а может 50 время вывода каждой строки заранее неизвестно, тот же пинг я могу пустить на 10 мин. В вашем примере может случиться так, что у меня комманда выполняется на середине процесса а таймаут вышел (у вас 5 сек.) и надо закрываться, как следствие некорректная работа (это в лучшем случае) |
|||
карма: 1 |
|
Ответов: 4641
Рейтинг: 334
|
|||
-= DriveR =- писал(а): не понял ваш вопрос
можно его перефразировать? Если не знаешь когда закончится, но например консольная программа выводит какойто результат в мемо, То по окочанию вывода результата количество строк в мемо не изменяется. А это значит что все закончилось. И кстати какой процес то висит ? У меня как пинг отработает то ping.exe закрывается. |
|||
карма: 1 |
|
Ответов: 817
Рейтинг: 52
|
|||
Ravilr писал(а): И кстати какой процес то висит ? У меня как пинг отработает то ping.exe закрываетсявисит cmd.exe его надо закрывать Насчет кол-ва строк это мысль, но тогда надо ща выдумывать как следить за этими строками... и какое время следить... а если этого времени не хватит... НЕ, так тоже не хочется. Поуниверсальней бы что то. Ладно, пойду перекушу, на сытый желудок лучше думается |
|||
карма: 1 |
|
Ответов: 4641
Рейтинг: 334
|
|||
не знаю какая у тебя задача, если такая как пинг то например
code_13171.txt ------------ Дoбавленo в 13.35: pping.cmd
|
|||
карма: 1 |
| ||
файлы: 1 | code_13171.txt [1KB] [131] |
Ответов: 4631
Рейтинг: 749
|
|||
Заранее извиняюсь, если я что-то не так понял или пропустил (примеры не смотрел).
-= DriveR =- писал(а): висит cmd.exeМожно запускать, например, не ping.exe, а cmd.exe с параметрами. Среди этих параметров есть параметр, указывающий cmd.exe закрываться или нет после отработки всех команд. Все параметры запуска cmd.exe можно узнать по "cmd.exe /?" |
|||
карма: 26 |
|
Ответов: 2125
Рейтинг: 159
|
|||
-= DriveR =- писал(а): Как можно дождаться исполнения коммады а потом закрыть cmd ?Передай команду exit, т.к. неважно, что она будет передана раньше, чем надо. Выполнится она всё равно вовремя.
|
|||
карма: 1 |
| ||
Голосовали: | Konst |