DOS Befehle mit C++



  • Hallo!
    Ich habe ein Programm mit graphischer Oberfläche das die DOS Eingabeaufforderung aufruft.

    Mein Problem wie krieg ich die Konsole dazu Befehle aus dem Programm auszuführen.

    system("cd ../");
    

    oder ein anderer Versuch

    char dir[300];
    sprintf(dir, "pdflatex test.tex");
    system(dir);
    

    Der Compiler gibt beide male keine Fehler aus.

    Ich arbeite mit VC++ 6.0 und QT 2.3.0.

    Mfg jaegermeister



  • Warum nimmst du nicht einfach WinApi Funktionen?



  • Was sind das für Funktionen?
    Und in welchen Klassen stehen die?



  • In deinem 2. Beispiel willst du ja nur ein anderes Programm starten. Sowas könnte mit WinExec oder ShellExecute gehen. Aber frag besser, im WinApi Forum, die kennen sich da besser aus. 🙂



  • jaegermeister schrieb:

    Der Compiler gibt beide male keine Fehler aus.

    Ich arbeite mit VC++ 6.0 und QT 2.3.0.

    Mfg jaegermeister

    Mag daran liegen, das beide sachen ok sind. Du kannst auch folgendes machen:

    system("Ich hab Hunger!!");
    

    , der Compiler würde trotzdem nicht meckern, denn es ist alles soweit korrekt. Ob allerdings Das System den Befehl "Ich hab Hunger!!" versteht ist äußerst fragwürdeig.

    Desweiteren: mit System() sendest du immer nur einen einzigen(!!) befehl ans System. Mehrmals system() hintereinander würde also keinesfalls so abgearbeitet werden wie ne batchdatei!



  • Ich will die WinAPI nicht verwenden, wenn es möglich ist.

    Aber frage ich mal amderes: Wie bekomme ich mein Programm dazu "pdflatex

    test.tex" auszuführen.



  • Ich hab jetzt mal den Befehl in die Konsole eingegeben die mein Programm öffnet. Der Befehl ist nicht bekannt.
    Dann habe ich mir eine Konsole mit Start->Ausführen geöffnet und den selben Befehl eingegeben da funktioniert es wie gewollt.

    Wenn ihr ideen habt was ich machen kann. Immer her damit.
    Ich bin für alles Dankbar.



  • Beispiel (WinXP)

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
      system("C:\\WINDOWS\\system32\\dfrg.msc");	
      return 0;
    }
    

    Du musst allerdings sicher gehen, das der Pfad den du ans System gibst auch stimmt.



  • Danke erstmal für eure Hilfe.
    Ich hab das nächste Problem festgestellt.
    Ich habe deinen Quelltext in einer Konsolenanwendung ausprobiert.
    Das cd wurde aber nicht auf der Konsole ausgeführt die das Programm aufruft, sondern in der Anwendung selbst.


Anmelden zum Antworten