eGospodarka.pl

eGospodarka.plGrupypl.comp.programming › okienko z cmd.exe w Qt C++
Ilość wypowiedzi w tym wątku: 6

  • 1. Data: 2022-04-07 14:26:16
    Temat: okienko z cmd.exe w Qt C++
    Od: Jivanmukta <j...@p...onet.pl>

    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ć?


  • 2. Data: 2022-04-15 15:53:08
    Temat: Re: okienko z cmd.exe w Qt C++
    Od: Adam M <a...@m...com>

    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);


  • 3. Data: 2022-04-15 19:10:08
    Temat: Re: okienko z cmd.exe w Qt C++
    Od: Jivanmukta <j...@p...onet.pl>

    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ę?


  • 4. Data: 2022-04-18 18:30:10
    Temat: Re: okienko z cmd.exe w Qt C++
    Od: Adam M <a...@m...com>

    On Friday, April 15, 2022 at 1:10:22 PM UTC-4, Jivanmukta wrote:
    > 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ę?
    Najlepiej to zrobic z cmd lub ps (albo z Microsoft Terminal jesli to Win 10) -
    teoretycznie konsola powinna byc dostepna nawet przy normalnym starcie z GUI (przez
    double-cick na ikone) ale czesto konsola sie pojawia ale bez informacji (tylko
    okienko konsoli i nic wiecej przynajmniej w QT pomiedzy 5.5 i 5.11 - w 6 za wyjatkiem
    prostych testow nic jeszcze nie robilem)


  • 5. Data: 2022-04-20 11:35:45
    Temat: Re: okienko z cmd.exe w Qt C++
    Od: Jivanmukta <j...@p...onet.pl>

    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.


  • 6. Data: 2022-04-27 09:04:04
    Temat: Re: okienko z cmd.exe w Qt C++
    Od: fir <p...@g...com>

    środa, 20 kwietnia 2022 o 11:35:59 UTC+2 Jivanmukta napisał(a):
    > 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.

    jest to dosc zabawna rzecz, i wielu ludzi o tym nie wiem ale to czy do programu
    w windows jest dolaczone w tle konsolowe okienko decyduje pole w pliku exe co znaczy
    ze mozesz do kazdego w zasadzie chyba programu na windzie ta konsole wlaczyc lub
    wylaczyc zminiajac mu to pole w hex edytorze lub prostym programikiem

    czy ta konsole sie daje ukrywac i pokazywac w runtime z menu programu
    to nie wiem (prawdopodobnie tak ale nie chce mi sie szukac)

strony : [ 1 ]


Szukaj w grupach

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: