Qt 4.3 Konsole verstecken
-
PoD GamefreakF
- Beiträge: 24
- Registriert: 23. August 2007 09:48
- Wohnort: schweiz
- Kontaktdaten:
Qt 4.3 Konsole verstecken
Hallo jung,
ich habe in meinem programm ein paar cmd aufrufe, mit der funktion "system(Variable)". Wie kann ich das cmd fenster das sich bei dieser funktion öffnet verstecken/nicht anzeigen lassen.
ich habe in meinem programm ein paar cmd aufrufe, mit der funktion "system(Variable)". Wie kann ich das cmd fenster das sich bei dieser funktion öffnet verstecken/nicht anzeigen lassen.
-
PoD GamefreakF
- Beiträge: 24
- Registriert: 23. August 2007 09:48
- Wohnort: schweiz
- Kontaktdaten:
-
dontinelli
- Beiträge: 146
- Registriert: 22. September 2006 20:53
Ich kenne cmd zwar nicht, das wird aber wohl so gehen:
Bei "start" kannst du als zweites Argument noch eine Stringliste von Argumenten mitgeben, vielleicht kannst du den copy-Befehl auch schon dort übergeben. Wie gesagt, ich kenne cmd nicht.
CHeers
DonTinelli
PS steht übrigens alles so in der Doku von QProcess!
Code: Alles auswählen
QProcess *p = new QProcess(this);
p->start("cmd");
p->write("copy c:/nase.jpg d:/nase.jpg");
p->closeWriteChannel();
if (!p->waitForFinished()) return false;
QByteArray result = p->readAll();
CHeers
DonTinelli
PS steht übrigens alles so in der Doku von QProcess!
-
PoD GamefreakF
- Beiträge: 24
- Registriert: 23. August 2007 09:48
- Wohnort: schweiz
- Kontaktdaten:
ich habe so die funktion in mein programm geschrieben, aber sie kopiert kein bild von C:/ nach D:/
Zuletzt geändert von PoD GamefreakF am 30. Januar 2008 13:25, insgesamt 1-mal geändert.
Eigentlich solltest du das "cmd" nicht brauchen (oder brauchst du unter Linux auch das "bash" als app-name?
)
sollte es also tun. Wenn natürlich in C:\ kein nase.jpg existiert wird auch der copy fehlschlagen!
Grüße
Franz
Code: Alles auswählen
QProcess process;
QStringList args;
args << "C:\nase.jpg" << "D:\nase.jpg";
process.start("copy", args);Grüße
Franz
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
-
PoD GamefreakF
- Beiträge: 24
- Registriert: 23. August 2007 09:48
- Wohnort: schweiz
- Kontaktdaten:
Code: Alles auswählen
QProcess process;
QStringList args;
args << xcopy << "C:\nase.jpg" << "D:\\";
int exitCode = process.execute("cmd", args);Ich habe es ausprobiert und es bleibt beim execute befehl stehen, dass heisst es macht was. Leider geht es wie gesagt nicht weiter.
Zuletzt geändert von PoD GamefreakF am 31. Januar 2008 10:06, insgesamt 1-mal geändert.
wenn es wirklich daran liegt, dass xcopy auf eine Usereingabe wartet würde ich versuchen die Aufforderungen einfach zu unterdrücken
also eventuell mit
versuchen, reine Theorie xD
*edit
weiterer Versuch wäre dann noch die Fehlerausgabe in eine Datei umzuleiten um zu sehen was los ist.
Demnach args noch mit "2> D:\\test.txt" erweitern
Code: Alles auswählen
xcopy /? ->
/C Setzt das Kopieren fort, auch wenn Fehler auftreten.
/R Überschreibt schreibgeschützte Dateien. ((wenn gewünscht sonst kommt wohl auch eine Rückfrage))
/Y Unterdrückt die Aufforderung zur Bestätigung, dass eine
vorhandene Zieldatei überschrieben werden soll.
/I Falls Ziel nicht vorhanden ist und mehrere Dateien kopiert
werden, nimmt XCOPY an, dass das Ziel ein Verzeichnis ist.
Code: Alles auswählen
args << xcopy << "/C" << "/R" << "/Y" << "C:\\nase.jpg" << "D:\\"; *edit
weiterer Versuch wäre dann noch die Fehlerausgabe in eine Datei umzuleiten um zu sehen was los ist.
Demnach args noch mit "2> D:\\test.txt" erweitern
Code: Alles auswählen
args << xcopy << "/C" << "/R" << "/Y" << "C:\\nase.jpg" << "D:\\" << "2> D:\\test.txt";
Zuletzt geändert von Noci am 31. Januar 2008 12:06, insgesamt 1-mal geändert.
-
PoD GamefreakF
- Beiträge: 24
- Registriert: 23. August 2007 09:48
- Wohnort: schweiz
- Kontaktdaten:
Exit code - Description
0 - Files were copied without error.
1 - No files were found to copy.
2 - The user pressed CTRL+C to terminate xcopy.
4 - Initialization error occurred. There is not enough memory or disk space, or you entered an invalid drive name or invalid syntax on the command line.
5 - Disk write error occurred.
0 - Files were copied without error.
1 - No files were found to copy.
2 - The user pressed CTRL+C to terminate xcopy.
4 - Initialization error occurred. There is not enough memory or disk space, or you entered an invalid drive name or invalid syntax on the command line.
5 - Disk write error occurred.
-
PoD GamefreakF
- Beiträge: 24
- Registriert: 23. August 2007 09:48
- Wohnort: schweiz
- Kontaktdaten:
1. ja klar habe ich schonmal daran gedacht, aber kannst du mir mal eine funktion posten die Verzeichnisse und deren unterverzeichnisse und deren unterverzeichtisse etc. wo anders hin kopiert.Korgen hat geschrieben:schonmal daran gedacht QFile::copy zu verwenden?
2. Wollte ich wissen wie man mit QProcess die CMD bedienen kann.
-
PoD GamefreakF
- Beiträge: 24
- Registriert: 23. August 2007 09:48
- Wohnort: schweiz
- Kontaktdaten:
Ja. Mit Rekursionen bekommst Du noch öfter zu tun, da wäre das eine gute Übung gewesenPoD GamefreakF hat geschrieben:aber kannst du mir mal eine funktion posten die Verzeichnisse und deren unterverzeichnisse und deren unterverzeichtisse etc. wo anders hin kopiert.
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.