![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Dom |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 7.8.2005 Репутация: 1 Всего: 4 |
Задача такая. Запустить консольное приложение с набором параметров командной строки. Дождаться завершения. Запустить следующее консольное приложение и т.д.
Пробовал ShellExecute, WinExec, CreateProcess - не получается. Вот есть такой код, процедура ExecAndWait позаимствована у Akella
Формируется правильный CmdLine, но при вызове CreateProcess ничего не происходит, приложение не запускается, новые файлы не создаются. Если строку полученную в CmdLine скопировать и вставить вручную в командную строку, то все отрабатывает корректно. Т.е. проблема где-то в самом вызове. Подтолкните пожалуйста в нужное направление, ибо силы уже на исходе... Наверняка какую-то мелочь пропустил... |
|||
|
||||
uwannadie |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 175 Регистрация: 5.6.2009 Где: Крым, Керчь Репутация: нет Всего: 1 |
попробуй такой код:
у меня по-крайней мере запускалось без ошибок и отрабатывало несколько десятков тысяч раз за один запуск программы ![]() p.s. код может изначально и был от Акеллы, но найден в просторах тырнета, так что чесно хз чей ![]() Это сообщение отредактировал(а) uwannadie - 25.3.2011, 22:45 --------------------
|
|||
|
||||
Dom |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 7.8.2005 Репутация: 1 Всего: 4 |
Спасибо, но не помогло...
Процесс как и прежде не запускается, по крайней мере я не вижу его в ProcessExplorer'е Будем думать дальше. |
|||
|
||||
uwannadie |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 175 Регистрация: 5.6.2009 Где: Крым, Керчь Репутация: нет Всего: 1 |
а Вы уверены, что вообще дело доходит до запуска?
--------------------
|
|||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 9 Всего: 130 |
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
CodeMonkey |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
Меня вот это смущает: '>' (это в командной строке). Выглядит очень подозрительно. Я сомневаюсь, что это параметр к программе.
Это часом вы не перенаправление вывода сделать хотите? -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
uwannadie |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 175 Регистрация: 5.6.2009 Где: Крым, Керчь Репутация: нет Всего: 1 |
кстати да, если перенаправление, то тут, увы, ничего не выйдет, ибо перенаправление вывода консоли умеет делать только сама консоль. для примера попробуйте скомпилировать это:
на диске D ничего не появится ![]() Это сообщение отредактировал(а) uwannadie - 29.3.2011, 11:25 --------------------
|
|||
|
||||
CodeMonkey |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
Отчего же. Вполне выйдет. И даже несколькими способами. Например, через hStdOutput. Или вызовом через CMD. Но для начала надо точно уточнить, что автор темы хочет сделать. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
uwannadie |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 175 Регистрация: 5.6.2009 Где: Крым, Керчь Репутация: нет Всего: 1 |
имелся ввиду способ вышеописанными процедурами и функциями --------------------
|
|||
|
||||
CodeMonkey |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
Непонятно, а что не так с вышеуказанными функциями? hStdOutput - это параметр у StartupInfo для CreateProcess. Берём и указываем.
Или имелось ввиду без модификации кода выше? Ну, способ с hStdOutput без модификации - да, нельзя. Хотя в первом примере даже STARTF_USESTDHANDLES есть (но почему-то нет установки самих описателей. Кто это писал? Пристрелить на месте! ![]() Способ через CMD - вполне. Скажем:
-------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
uwannadie |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 175 Регистрация: 5.6.2009 Где: Крым, Керчь Репутация: нет Всего: 1 |
именно это и имелось ввиду. если Вы имелли ввиду то, что выкладывал я, то оно нарыто гуглом в просторах инета ![]() --------------------
|
|||
|
||||
northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 8 Всего: 20 |
Имхо, CodeMonkey имеет в виду код в вопросе автора. Но "пристрелить на месте" уважаемого автора (к тому же модератора) я не советовал бы. ![]() -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |