Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под Windows > WinAPI
Перезагрузить страницу Из моего приложения передать текст в коммандную строку досовского окна
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Jinn_01 Jinn_01 вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 06.10.2011
По умолчанию Из моего приложения передать текст в коммандную строку досовского окна - 06.10.2011, 18:58

Итак, есть моя программа на C++, в которой я запускаю стороннюю программу функцией CreateProcess. Эта сторонняя программа открывает досовское окно и в его командной строке нужно вбить параметр. Сразу отмечу, что интерфейс этого досовское окна устроен так, что там нужно вбить сначала один параметр, нажать Enter, потом вбить второй параметр, нажать Enter, после чего получится конечный результат. Так вот послать первый параметр удается посредством CreateProcess при инициализации этого процесса, а вот два сразу - никак (пишет "ERROR: unrecognized option MN510815.pcb.").

cpp Код:
AnsiString n_CmdLineTMP = "sp2accel.exe " + " MN510815.ses" + " MN510815.pcb";
   char* n_CmdLineTr = new char[n_CmdLineTMP.Length() + 1];
   strcpy(n_CmdLineTr, n_CmdLineTMP.c_str());

CreateProcess(NULL, n_CmdLineTr, NULL,NULL,FALSE,CREATE_NEW_CONSOLE,NULL,NULL,&si,&processInformation);

Там " MN510815.ses" - первый параметр, а " MN510815.pcb" - второй. Убирая второй, досовское окно проглатывает первый и ждет ввода второго.

Итак, как мне послать второй параметр?
Ответить с цитированием
  (#2 (permalink)) Старый
Alexiski Alexiski вне форума
Любитель давать советы
 
Сообщений: 4,276
Сказал(а) спасибо: 27
Поблагодарили 54 раз(а) в 54 сообщениях
Регистрация: 16.10.2005
По умолчанию 06.10.2011, 23:04

Цитата:
Сообщение от Jinn_01 Посмотреть сообщение
досовское окно проглатывает первый и ждет ввода второго.
Значит, нужно перехватывать поток ввода и писать в него всё, что нужно. Вот тут: http://www.progz.ru/t143966/ обсуждалось, как перехватывать поток вывода, поток ввода перехватывается примерно аналогично.
Ответить с цитированием
  (#3 (permalink)) Старый
Alexiski Alexiski вне форума
Любитель давать советы
 
Сообщений: 4,276
Сказал(а) спасибо: 27
Поблагодарили 54 раз(а) в 54 сообщениях
Регистрация: 16.10.2005
По умолчанию 06.10.2011, 23:07

Как вариант, можете передать необходимые данные через временный файл.
Тогда командная строка должна выглядеть примерно так:
cmd.exe /c youProg.exe < tempFile.txt
Ответить с цитированием
  (#4 (permalink)) Старый
Jinn_01 Jinn_01 вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 06.10.2011
По умолчанию 07.10.2011, 15:18

"cmd.exe /c youProg.exe < tempFile.txt" - работает, спасибо. С перехватом потока буду разбираться.
Ответить с цитированием
  (#5 (permalink)) Старый
Alexiski Alexiski вне форума
Любитель давать советы
 
Сообщений: 4,276
Сказал(а) спасибо: 27
Поблагодарили 54 раз(а) в 54 сообщениях
Регистрация: 16.10.2005
По умолчанию 07.10.2011, 23:24

Только для полного перфекционизма вместо жестко зашитого cmd.exe лучше взять содержимое переменной окружения COMSPEC
Ответить с цитированием
Ads.
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Надо считать текст из Rich TextBox в строку Sneik Aiz .NET 1 08.03.2011 12:57
Обновление окна приложения rain789 Вопросы начинающих программистов 1 31.01.2011 22:40
Текст в блокнот как передать Vovanidze WinAPI 9 16.09.2006 17:18
Получить текст из чужого окна const WinAPI 2 17.08.2006 09:31
Как передать из окна где находится Таб, значение переменной &gt;AndruXa&lt; Visual C++ 13 02.06.2006 23:54
Как при закрытии окна передать результат другим Anti Java 6 31.05.2006 07:06
Как переобразовать значение Label в текст и передать строковой переменной Daler Visual C++ 4 29.05.2006 10:44
Как рисовать только поверх моего окна Maksprog C++ Builder 9 13.04.2006 11:49
Как передать свою русскую строку через клипбоард в Word Arseny Visual C++ 1 14.08.2004 16:08
Как получить текст из ListBox из чужого приложения Anonymous Вопросы начинающих программистов 0 07.08.2004 23:14
Как создать текст. файл, добавить в него строку, закрыть DENIS451 C++ Builder 5 16.04.2004 13:00
Как передать переменную из главного окна программы в диалог mc.megavolt Visual C++ 2 30.10.2003 23:15



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов