Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[C++] Włączanie zewnętrznych programów z poziomu własnego

golwitka 09 Cze 2011 19:41 687 4
  • #1 09 Cze 2011 19:41
    golwitka
    Poziom 7  

    Siema, jako że jest to mój pierwszy post na tym forum, to chciałbym się z wszystkimi przywitać. :) Ale do tematu. Otóż chciałbym napisać program w C++ który po wybraniu odpowiedniej liczby uruchamiałby odpowiedni program. Mam nadzieję, że mniej więcej zrozumiecie o co mi chodzi :) Wyglądałoby to tak że wyświetla mi się lista programów, razem z przypisanymi liczbami, i po wklepaniu odpowiedniej liczby uruchomiłby się program ze ścieżki podanej w funkcji. No właśnie teraz tylko pytanie jakiej funkcji użyć? Potrzebna mi jest tylko funkcja, z resztą sobie poradzę. Mam nadzieję, że napisałem dosyć jasno :) Z góry dzięki za pomoc.
    Pozdr.

    0 4
  • #2 09 Cze 2011 20:50
    Akane
    Poziom 27  

    ShellExecute, ShellExecuteEx zawsze zadziałają (różnią się sposobem przekazania parametrów).
    CreateProcess, CreateProcessWithLogonW - dają zaawansowane możliwości, ale mogą być problematyczne na systemach Vista/Win7 dla programów "uprzywilejowanych".

    0
  • #3 09 Cze 2011 20:53
    golwitka
    Poziom 7  

    No właśnie, zapomniałem dodać, że mam win7. Czytałem coś o funkcji System(), może tym da radę, czy lepiej ShellExcute?

    0
  • #4 09 Cze 2011 23:47
    Akane
    Poziom 27  

    Nie rozumiem dlaczego pytasz o co

    Dodano po 2 [minuty]:

    Nie rozumiem dlaczego pytasz o coś, co sam możesz sprawdzić. Przecież to nie gryzie.
    Usłyszysz - zapomnisz. Zobaczysz - zapamiętasz. Zrobisz - zrozumiesz.

    0
  • #5 10 Cze 2011 01:25
    lolcio
    Poziom 16  

    Najprostszy sposób to:
    #include <stdlib.h>
    system("sciezka do programu.exe");

    Możesz użyć też Qt i w banalny sposób uruchomić co tylko chcesz z jakimi chcesz parametrami np.

    Code:

     #include <QtGui>

         QString program = "./path/to/Qt/examples/widgets/analogclock";
         QStringList arguments; //lista argumentow
         arguments << "-style" << "motif";

         QProcess *myProcess = new QProcess; //obiekt tej klasy uruchamia dowolny program
         myProcess->start(program, arguments);

    Bardzo polecam, używam tego sposobu zawsze...są funkcje exec() ale zawsze mi czegoś w nich brakowało :P

    0