[C++] Uruchamianie zew. programu wpisanego w str. wejścia


(pawelek5) #1

Witam,

Co zrobić by mój konsolowy program napisany w C++ uruchamiał zewnętrzny program, który mu wpiszę w strumieniu wejścia?

Próbowałem już takie coś, lecz nie działa...

if (mozliwosc == "y")

				{

				std::cout << "Wpisz ścieżkę programu i jego nazwę." << std::endl;

				std::string dane_programu;

				std::cin >> dane_programu;

				}

//...



		ShellExecuteA(0, 0 ,dane_programu,0,0,SW_SHOW);

(Razi) #2
std::system(dane_programu.c_str());

?


(Rolek0) #3

Wkleiłeś dwa niepowiązane ze sobą kawałki kodu (zmienna dane_programu w pierwszym kawałku jest lokalna w bloku if, więc drugi musi używać innej zmiennej dane_programu), więc trudno powiedzieć co zrobiłeś źle.


(pawelek5) #4

A no tak…

Dodałem zmienną przed main, lecz dalej kompilator podkreślał błąd w tym ShellExecuteA.

Zamiast ShellExecuteA wkleiłem std::system i teraz działa…

A jaki by był kod dla zamknięcia aplikacji, który współpracuje ze strumieniem wejścia?

Dodane 25.08.2013 (N) 20:36

Wtedy gry sprawdzałem, czy std::system działa wpisałem notepad.exe.

Teraz wpisałem plik z lokalizacją i nie działa… :frowning:


(Razi) #5

W lokalizacji używałeś ukośników / czy ? Windows używa , ale jak chcesz podawać tak ścieżkę w kodzie, to musisz pisać \.


(pawelek5) #6

Wpisywałem na parę różnych sposobów nie działało. Spróbowałem na innym pliku i zadziałało, teraz jeszcze raz chcę to zrobić - nie działa…

Dodane 25.08.2013 (N) 20:54

I znowu. Zadziałało i teraz znowu nie działa…

Dodane 25.08.2013 (N) 21:16

Podsumowując: raz działa, raz wyświetla taki o to komunikat…

mqij.png