Klasse zum Starten von programmen...
-
jogibear9988
- Beiträge: 12
- Registriert: 17. April 2006 14:04
Klasse zum Starten von programmen...
Gibt es In QT eine Klasse mit der Ich externe Programme ausführen usw kann???
Wenn nicht, dann wenigstens eine die mir einen Programm mit Parametern in 2 Qstrings, einen mit dem Programmnamen und einen mit den Parametern zerlegt???
Wenn nicht, dann wenigstens eine die mir einen Programm mit Parametern in 2 Qstrings, einen mit dem Programmnamen und einen mit den Parametern zerlegt???
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
-
jogibear9988
- Beiträge: 12
- Registriert: 17. April 2006 14:04
danke...
danke erstmal... nun noch ne idee wie ich prg/pfad und parameter zerlege??
-
jogibear9988
- Beiträge: 12
- Registriert: 17. April 2006 14:04
Schon klar...
Schon klar das ich mit split einen string zerlgene kann... Aber dachte da gibts was fertiges, was mach ich nämlich z.B. wenn mein prgname+pfad+para:
/usr/aa ss/dd -uu heist??
ist dann pfad+prg: /usr/aa ss/dd
und para -uu
oder
pfad+prg: /usr/aa
und para: ss/dd -u
ne idee??
/usr/aa ss/dd -uu heist??
ist dann pfad+prg: /usr/aa ss/dd
und para -uu
oder
pfad+prg: /usr/aa
und para: ss/dd -u
ne idee??
-
jogibear9988
- Beiträge: 12
- Registriert: 17. April 2006 14:04
ah...
ah falsch... ich weis es ja genau.
wenn ein leerzeichen mit einem backslash maskiert ist gehört es ja zum programmnamen, aber wie kann ich das einfach zerlegen??? ideeen?? vieleicht ein regexp??
wenn ein leerzeichen mit einem backslash maskiert ist gehört es ja zum programmnamen, aber wie kann ich das einfach zerlegen??? ideeen?? vieleicht ein regexp??
Re: ah...
du kannst es doch andhand der position und des - unterscheiden.jogibear9988 hat geschrieben:ah falsch... ich weis es ja genau.
wenn ein leerzeichen mit einem backslash maskiert ist gehört es ja zum programmnamen, aber wie kann ich das einfach zerlegen??? ideeen?? vieleicht ein regexp??
a) was mit - anfängt, ist ein parameter
b) was einem pfad entspricht ist eine datei
zu b kannst du vermutlich mit sowas wie QFile("xx/yy").exist() testen, ob das plausibel ist. eventuell kannst du das ja auch mit QUrl("xx/yy").isValid() machen, keine ahnung, schiesst mir nur gerade durch den kopf.
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Wenn Du wirklich die optionen parsen willst (warum denn?), dann schau mal nach qt-4-src/src/corelib/kernel/qcoreapplication_win.cpp nach der Funktion
So parst Qt die Optionen.
Code: Alles auswählen
template<typename Char>
static QVector<Char*> qWinCmdLine(Char *cmdParam, int length, int &argc)
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
-
jogibear9988
- Beiträge: 12
- Registriert: 17. April 2006 14:04
wll nichts parsen...
will nur programmname und parameter zerlegen.
nach - suchen geht nicht da ja der erste para auch eine datei sein kann.
ich müsste das erste nicht maskierte leerzeichen finden, aber wie mache ich das???
nach - suchen geht nicht da ja der erste para auch eine datei sein kann.
ich müsste das erste nicht maskierte leerzeichen finden, aber wie mache ich das???
Re: wll nichts parsen...
ja und? welche formen kann denn die kommandozeile annehmen?jogibear9988 hat geschrieben:nach - suchen geht nicht da ja der erste para auch eine datei sein kann.
zuerst kommt der name des aufgerufenen programmes
dann kommt eine datei oder ein parameter mit - am anfang
dann kommt eine parameter mit - am anfang
?
dann fällt der erste teil schon weg. fängt der nächste teil _nicht_ mit - an, ist es eine datei. alle teile, die mit - anfangen, sind parameter.
-
jogibear9988
- Beiträge: 12
- Registriert: 17. April 2006 14:04
ne...
nein, es können aber auch mehrere datenen als parameter folgen, oder gar keine oder parameter dateiname wieder parameter und wieder ein dateiname... aber ich denke ich habe die frage in meinem anderen thread besser formuliert. diesen kann man schließen!