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-15 19:10:08
    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 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);
    >

    A jak wystartować aplikację?

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

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: