Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Системное программирование и WinAPI > Как запустить bat-файл из моей программы? |
Автор: Курсант 7.3.2011, 22:45 | ||
Здравствуйте... Пытаюсь запустить из моей программы bat-файл... Bat нормальный, при запуске "мышкой" работает. Из программы - не запускается... Подозреваю что проблема в том, что использовал CreateProcess, bat вроде как не совсем процесс... Ну, это для меня темный лес... Еще нужно получить результат выполнения bat-ника... А именно, информацию о том, что он во-первых закончился, а во-вторых утилиты, прописанные в нем, сделали свое дело... Пытался делать так:
Но ничего не вышло... Пойду мучать CreateProcess с командами из bat'а... Если кто знает как решить эту проблему, подскажите плиз... |
Автор: volatile 8.3.2011, 00:02 |
Бат файл это не процесс, а типа скрипт для комманд интерпретера (cmd.exe). Можно пойти разными путями. 1. Запустить cmd.exe через CreateProcess, а в параметрах запуска ваш батник. 2. Можно сделать проще: system ("ваш бат файл"); в 1 случае можно получить код возврата, дождаться завершения, или не дожитаться, ну все как обчно с CreateProcess. в 2 насчет кода возврата сомневаюсь, а завершения кажется будет ждать по-любому. |
Автор: Курсант 8.3.2011, 10:26 | ||
Спасибо за совет... Меня вот что смущает - что не работает такой код....
Файл model.c находится в одной папке с gcc.exe, то есть в mingw\bin... |
Автор: Курсант 8.3.2011, 11:23 |
mingw\bin\gcc.exe находится внутри папки с моей программой, но возможно, нужно прописать в параметрах... При запуске через system вроде все получается... Почти... То есть я вижу консольное окно, правда компиляция не выполняется, потому что надо поколдовать с директориями... Пока вожусь... Но хотелось бы разобраться с CreateProcess и WaitForSingleObject на этом примере, раз уж он не получается... Пойду колдовать с директориями... |
Автор: Курсант 8.3.2011, 11:45 |
чую меня это достанет я впихну свою программу в папку bin и никаких относительных путей не будет.. буду вызывать программу прямо в той же папке, библиотеку подключать буду из той же папки и так далее... но это будет неаккуратно как-то... Добавлено через 6 минут и 51 секунду Хммм... Чудно, но действительно заработала ![]() ![]() ![]() |
Автор: xvr 8.3.2011, 20:49 | ||
Смотрите 2 первых параметра http://msdn.microsoft.com/en-us/library/ms682425%28VS.85%29.aspx В частности, для bat файлов там написано -
|