На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Visual C++ / MFC / WTL (далее Раздела)
1) На Раздел распространяются все Правила Форума.
2) Перед тем, как создать новый топик, убедитесь, что Вы читали Правила создания тем в Разделе.
3) Вопросы, не связанные с программированием (настройки MS Visual Studio, книги, библиотеки и т.д.),
обсуждаются в разделе C/C++: Прочее
4) Вопросы разработки .NET (Windows Form, C++/CLI и т.п.) приложений на Visual C++/C# обсуждаются в разделе .NET.
5) Нарушение Правил может повлечь наказание со стороны модераторов.

Полезные ссылки:
user posted image FAQ Раздела user posted image Обновления для FAQ Раздела user posted image Поиск по Разделу user posted image MSDN Library Online
Модераторы: ElcnU
  
> В чем разница между BAT и EXE файлами , при запуске их с помощью CreateProcess?
    ??
      M
      Тема перенесена из C/C++ -> Чистый С/С++
        BAT содержит команды ДОСовского интерпретатора, а EXE -- исполняемый двоичный код + все необходимое для его правильной загрузки.
        Поэтому чтобы выполнить BAT надо запустить command.com с параметром /C batch_file
          Из CreateProcess?
            В том, что exe-файлы - это файлы, исполняемые системой и имеющие соответствующий формат. BAT-файлы - это файлы, исполнямые командным процессором (cmd.exe). Дабы не заморачиваться можешь делать так: читаешь значение переменной окружения ComSpec (она содержит путь к командному процессору), и то, что тебе нужно запустить передаешь ему в качестве параметров.
              Цитата

              читаешь значение переменной окружения ComSpec

              это какой функцией?

              Цитата

              передаешь ему в качестве параметров

              кому ему?

              Можно поподробнее, пожалуйста? И с примером бы? Спасибо!
              Сообщение отредактировано: igosm -
                Грубо говоря, ты должен сделать следующее:
                ExpandedWrap disabled
                   
                  std::string com_spec = getenv("ComSpec");
                  com_spec += " ";
                  com_spec += command_for_run; // command_for_run - то, что тебе надо запустить
                  system(com_spec.c_str());
                  Понятно, спасибо!

                  Добавлено Сегодня, 15:48
                  Только мне б еще, чтоб возвращалось управление программе...
                  Достоточно ли для этого использовать в приведенном выше примере вместо функции system() функцию CreateProcess()?

                  Добавлено Сегодня, 15:51

                  Добавлено
                  В каком виде должна быть записана команда на выполнение в сообщении #7?
                  Сообщение отредактировано: igosm -
                    У меня была такая же проблема. Правда, я запускал exe-шник. CreateProcess работает с ними без проблем. Не знал, что с bat-файлами не так...
                      а ShellExecute не помогает?
                      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                      0 пользователей:


                      Рейтинг@Mail.ru
                      [ Script execution time: 0.0818 ]   [ 16 queries used ]   [ Generated: 18.06.26, 00:02 GMT ]