Problem mit ext. Konsolentool

Alles rund um die Programmierung mit Qt
Antworten
TK
Beiträge: 74
Registriert: 3. April 2009 11:33

Problem mit ext. Konsolentool

Beitrag von TK »

Hallo zusammen,

ich habe ein Problem mit dem Aufruf eines ext. Konsolentool. Die GUI befindet sich auf dem Laufwerk C:\ und ruft über

Code: Alles auswählen

        process.start("C:\\Windows\\system32\\cmd.exe", QStringList(cmd));
        process.waitForFinished(); // wait and block
das ext. Konsolentool auf. Das funktioniert einwandfrei.

Rufe ich nun die GUI von einem anderen Laufwerk auf (z.B. USB-Laufwerk oder Netzlaufwerk) funktioniert das ext. Konsolentool nicht.

Ich habe anstatt process.start, process.startDetached und an die Stelle process.waitForFinished() einen breakpoint gesetzt. So sah ich, dass in der Eingabeaufforderung stand, dass der Befehl nicht ausgeführt werden konnte, obwohl QStringList(cmd) nicht verändert wurde. Es liegt wohl daran, dass ich die GUI nicht von dem Laufwerk C:\ aufrufe. Wie kann ich dieses Problem beheben?

Schlagworte die mir einfallen sind: windowsDir, windowsDriver, QCoreApplication. Oder bin ich auf dem Holzweg. Danke für eure Hilfe.
dontinelli
Beiträge: 146
Registriert: 22. September 2006 20:53

Beitrag von dontinelli »

Was steht denn in cmd? Arbeitest du da mit absoluten Pfaden? Keine Ahnung wie cmd.exe arbeitet, aber könnte ja sein, dass sie ihr Arbeitsverzeichnis immer dort hat, von wo sie aufgerufen wird.
TK
Beiträge: 74
Registriert: 3. April 2009 11:33

Beitrag von TK »

Ja, ich arbeite mit absoluten Pfaden in dem CMD. Deine Vermutung mit dem Arbeitsverzeichnis könnte stimmen. Hm, wie kann ich denn das Arbeitsverzeichnis des Konsolentools setzten? Und, warum ändert sich das Arbeitsverzeichnis, wenn ich die GUI nicht von C:\ aufrufe?
TK
Beiträge: 74
Registriert: 3. April 2009 11:33

Beitrag von TK »

Hat leider niemand eine Idee? Oder werden noch mehr Details benötigt? Wenn ja, welche?
Baz
Beiträge: 67
Registriert: 22. August 2007 14:21

Beitrag von Baz »

Ist jetzt nur so eine Idee: Man kann bei QProcess das workingDir setzen (http://doc.trolltech.com/4.7/qprocess.h ... rtDetached), vielleicht hilft dir das weiter?
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Man könnte auch ein Shell-Scirpt schreiben und die ganzen Parameter in eine Datei loggen.
Antworten