eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingokienko z cmd.exe w Qt C++ › Re: okienko z cmd.exe w Qt C++
  • Data: 2022-04-20 11:35:45
    Temat: Re: okienko z cmd.exe w Qt C++
    Od: Jivanmukta <j...@p...onet.pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    W dniu 15.04.2022 o 19:10, Jivanmukta pisze:
    > W dniu 15.04.2022 o 15:53, Adam M pisze:
    >> On Thursday, April 7, 2022 at 8:26:19 AM UTC-4, Jivanmukta wrote:
    >>> Używam C++ i Qt5.
    >>> Potrzebuje uruchomić pewien program konsolowy z argumentami ale tak,
    >>> żeby było widać okienko cmd.exe z uruchomionym tym programem.
    >>> Próbowałem tak:
    >>>
    >>> std::string terminal = exec_system(L"echo %windir%") +
    >>> "\\system32\\cmd.exe";
    >>> terminal = str_replace("\n", "", str_replace(END_LINE, "", terminal));
    >>> QProcess *process = new QProcess();
    >>> QString exec = QString::fromStdString(terminal);
    >>> QStringList params;
    >>> params << "/C";
    >>> for (std::string s : explode(std::string(" "), command)) {
    >>> params << str_replace("\"", "", s).c_str();
    >>> }
    >>> process->start(exec, params);
    >>> process->waitForFinished();
    >>> delete process;
    >>>
    >>> ale niestety okienko cmd.exe się nie wyświetla.
    >>> Tzn. pojawia się na jakiś czas klepsydra, ale okienka nie ma.
    >>>
    >>> Jak to zrobić?
    >> Do pliku pro dodaj:
    >> CONFIG += console
    >> do pliku CPP ktory startuje twoja aplikacje dodaj
    >>
    >> #include <windows.h>
    >> #include <stdio.h>
    >>
    >> w funkcji main(..) dodaj
    >>
    >> // detach from the current console window
    >>     // if launched from a console window, that will still run waiting
    >> for the new console (below) to close
    >>     // it is useful to detach from Qt Creator's <Application output>
    >> panel
    >>     FreeConsole();
    >>
    >>     // create a separate new console window
    >>     AllocConsole();
    >>
    >>     // attach the new console to this application's process
    >>     AttachConsole(GetCurrentProcessId());
    >>
    >>     // reopen the std I/O streams to redirect I/O to the new console
    >>     freopen("CON", "w", stdout);
    >>     freopen("CON", "w", stderr);
    >>     freopen("CON", "r", stdin);
    Chyba nie dość dokładnie się wyraziłem.
    Mój program w C++/Qt5 ma własne okienko windowsowe. Chciałbym żeby po
    wyborze pewnej opcji z jego menu uruchomiony został program konsolowy
    (nie w Qt) w osobnym okienku z cmd.exe, tzn. tak, żeby było widać jak
    działa, co wypisuje na ekran. Potem zamknięcie tego osobnego okienka
    powodowałoby powrót do okienka mojego programu zrobionego w Qt.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

  • 27.04.22 09:04 fir

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: