Problem mit " und Leerzeichen bei System()



  • Hallo,
    ich will ein programm mit argumenten per system() aufrufen, sowohl im pfad zum Programm als auch in den Argumenten sind Leerzeichen.
    Ich habe folgendes probiert:

    system(command);
    -->
    command = ...
    
    "d:\pfad mit leerzeichen.exe" "hallo gehört zusammen" "neues argument"
    //geht garnicht (programm wird nicht geöffnet)
    
    "d:\pfad mit leerzeichen.exe "hallo gehört zusammen" "neues argument""
    //geht auch garnicht
    
    d:\pfad mit leerzeichen.exe "hallo gehört zusammen" "neues argument"
    //auch nicht
    
    "d:\pfad mit leerzeichen.exe" hallo gehört zusammen neues argument
    //geht aber natürlich zu viel argumente
    
    "d:\pfad mit leerzeichen.exe" 'hallo gehört zusammen' 'neues argument'
    //auch zu viele argumente
    
    //ich habe natürlich überall \" statt "
    

    Schon einmal vielen Dank für eure Hilfe
    Moritz



  • moritz92 schrieb:

    //ich habe natürlich überall \" statt "
    

    Zeig mal besser den Code genau so, wie du ihn auch geschrieben hast, also einschliesslich der Escape-Sequenzen.

    Prinzipiell gilt: alle Anführungszeichen, die mit übergeben werden sollen, müssen escaped werden, und dann gehört der komplette Ausdruck nochmal in Anführungszeichen.



  • Hallo

    Nimm eine String-Klasse zum Zusammenbauen.

    Und nimm statt system zum Starten von Programmen WinExec oder ShellExecute

    bis bald
    akari


Anmelden zum Antworten