Zatrzymanie programu konsolowego [Windows]

0

Witam ,nigdzie nie mogę tego znaleźć w necie ,a problem jest byc może błahy i głupi ,ale irytujący.

Jak zatrzymać w Windowsie zamykanie okna programu konsolowego po zakończeniu jego pracy? Tzn teraz odpalam program ,a on miga i się zamyka. W tej chwili otwieram takie programy przez cmd.exe ,ale to męczące rozwiązanie.

Chciałbym ,żeby po zakończeniu programu odpalonego "dwuklikiem" konsola nadal była otwarta.

1

wywołuj program z konsoli, jęzeli to C to mozesz dolaczyc #include <conio.h> a przed return 0 umiescic getch();, w devie jak otwierasz projekt z tego co pamietam to samo sie dodaje system("pause"); // nie polecam tego.

1

Poszukaj bibiloteki do sterowania konsolą, w C++ jest to ncurses. Drugą opcjąjest objęcie programu w pętlę nieskonczoną i pytanie co obieg petli czy zaczac od nowa. Generalnie programy konsolowe nie powinny być zatrzymywane na siłę, więc jeżeli tylko potrzebujesz tego w celach edukacyjnych to każde sensowne IDE samo zatrzyma konsole (jak np. Code::Blocks dla m.in C, C++). Jeżeli naprawde potrzbeujesz zatrzymać konsole i nie chcesz skorzystać z w/w opcji, to można zatrzymać go przez np pobranie od usera jakiejś danej (np. poprzez getch(), std::cin itp) ale nie powinno sie tak robic.

0

Ale ja nic nie pisałem o pisaniu programu!

Ja mam już skompilowany exe i chcę go tak otworzyć tak ,żeby konsola się nie zamknęła zaraz po otwarciu "dwuklikiem". Naprawdę prościej się tego wytłumaczyć nie da.

0

Hah, forum o programowaniu, dział o podstawach programowania, temat wydawaloby sie bardzo pasujący do tematu początków nauki programowania, wiec z góry założyliśmy że chodzi o pisanie programu :)
Nie wiem nic o ustawieniu konsoli w Windowsie tak, żeby w takich przypadkach sie nie zamykała, wiec zbytnio nie pomogę. Może wystarczy jakas komenda przy otwieraniu programu, nie mam pojęcia.

3

Zrób plik bat:

program.exe
pause
3

W 99,99% przypadków pożądane jest, by program kończył się automatycznie. Jeżeli odpalasz program z dwukliku to utwórz sobie plik bat albo cmd, w którym będziesz miał

nazwaprogramu
PAUSE

i to ten plik bat / cmd będziesz uruchamiał.

0

Nie wiem czy to jest możliwe (w każdym razie mnie się nie udało), ale można by zrobić tak, że aplikacja na starcie sprawdza ile jest parametrów, i jesli jest 1 to sprawdza jego wartość (ParamStr(1)) czy jest poprawna i jeśli tak - wykonuje główny kod programu, a jeśli została wywołana bez parametru, to uruchamia cmd.exe z parametrem, na który składa się pełna nazwa naszej aplikacji i prawidłowy parametr;

Mnie niestety nie udało się (późno już i zmęczony jestem), ale mogło by to wyglądać tak:

1. Sprawdzenie istnienia parametru
1.1 Istnieje - sprawdzamy poprawność
1.1.1 Poprawny - wykonujemy główny kod naszej aplikacji
1.1.2 Niepoprawny - zamykamy program
1.2 Nie istnieje - wywołujemy cmd.exe z parametrem C:\MyApp.exe MyValidParam

gdzie C:\MyApp.exe to pełna nazwa naszego programu, a MyValidParam to nazwa właściwego parametru, dla którego głowny kod aplikacji zostanie wykonany;

Aplikacja działała, uruchamiała cmd.exe, ale ten z kolei nie uruchomił naszej aplikacji z dodatkowym parametrem...

Jutro sprawdzę to dokładniej;

0

W katalogu Windows są dwa pliki _default.pif i NoClose.pif (ten jest nie zawsze). TC przy uruchamianiu programów klawiszem Enter korzysta z _default.pif, a przy Shift+Enter z NoClose.pif. Nie wiem jak namówić Explorera żeby dla pewnych plików korzystał z NoClose.pif.

1 użytkowników online, w tym zalogowanych: 0, gości: 1