Befehl ausführen

Alles rund um die Programmierung mit Qt
Antworten
eule3
Beiträge: 56
Registriert: 30. Juni 2005 23:13

Befehl ausführen

Beitrag von eule3 »

Hallo

ich möchte in einen QT3 - programm
einen ganz normalen Linux-Befehl ausführen.
Geht das?

mfg
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Ja, QProcess
eule3
Beiträge: 56
Registriert: 30. Juni 2005 23:13

Beitrag von eule3 »

Super !!
Danke, das funktioniert.
Laut Anleitung kann man damit sogar auf den StandarDinput schreiben.
Leider gibt es nur ein Beispiel mit der Standardausgabe.
Kann mir da noch jemand helfen?

Danke
mfg
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Auf den StandardInput schreibt man nicht, oder erwartest du dann, daß sich deine Tasten auf dem Keyboard bewegen?
eule3
Beiträge: 56
Registriert: 30. Juni 2005 23:13

Beitrag von eule3 »

upsala hat geschrieben:Auf den StandardInput schreibt man nicht, oder erwartest du dann, daß sich deine Tasten auf dem Keyboard bewegen?
Der befehl den ich ausführen möchte erwartet in der Tat
ein paar Tastenanschläge. Wenn ich fertig bin müsste ich ein
EOT senden (wie?) um dem Programm zu sagen das ich fertig bin mit der
Eingabe und es loslegen kann.
Alternativ kann ich natürlich die Daten auch in eine Datei schreiben
und den Befehl so ausführen: Befehl << Dateiname
Ich dachte nur ich könnte das auch lösen ohne extra eine
Datei zu schreiben.
mfg
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Achso, ich hatte das falsch interpretiert. Aber was gefällt dir an

Code: Alles auswählen

void QProcess::writeToStdin ( const QString & buf )
nicht? Oder ist deine Dokumentation defekt?
eule3
Beiträge: 56
Registriert: 30. Juni 2005 23:13

Beitrag von eule3 »

hallo

danke für die antwort
upsala hat geschrieben:Achso, ich hatte das falsch interpretiert. Aber was gefällt dir an

Code: Alles auswählen

void QProcess::writeToStdin ( const QString & buf )
nicht? Oder ist deine Dokumentation defekt?
Doku ist nicht defekt. :-)
Aber in englisch und ich bin nicht der beste.
ohne Beispiel bekomme ich das nicht hin.
ich habe jetzt meinen befehl umgeschrieben:
cat filename | befehl
Aber kann es sein das QProcess die Pipe nicht mag?
Gib es eigentlich eine Möglichkeit sich den befehl anzuschauen
den Qprozess ausgeführt hat? Das habe ich in der Doku
wirklich nicht gefunden.
Vielen dank im voraus.
mfg
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

QProcess führt keine Shell aus, also kennt auch die Pipe nicht
eule3
Beiträge: 56
Registriert: 30. Juni 2005 23:13

Beitrag von eule3 »

hallo und danke für die Antwort.
upsala hat geschrieben:QProcess führt keine Shell aus, also kennt auch die Pipe nicht
Ja, dann wird die Sache schwieriger. Ich werde wohl doch mit
QProcess::writeToStdin arbeiten müssen. In einer Shell muss ich dem
Befehl mit [Strg]+[D] sagen das meine Eingabe zu Ende ist.
Wie mache ich das mit QT?
Und wann muss ich mit writeToStdin schreiben?
Vor oder nach start?

Vielen Dank im voraus
mfg
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Und wann muss ich mit writeToStdin schreiben?
Vor oder nach start?
Was erscheint denn am logischsten?


[/quote]
eule3
Beiträge: 56
Registriert: 30. Juni 2005 23:13

Beitrag von eule3 »

upsala hat geschrieben:
Und wann muss ich mit writeToStdin schreiben?
Vor oder nach start?
Was erscheint denn am logischsten?
[/quote]
:-)
Bin ich doch an einen "Lehrer" geraten
:-))

Logisch wäre es nachher. Aber was ist den bei
Computer schon logisch. Könnte ja sein das man es vorher eingeben
muss und QT es speichert bis es gebraucht wird.
Du vergisst bitte meine Frage zu [Strg][D]nicht?
danke
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Du vergisst bitte meine Frage zu [Strg][D]nicht?
Nein, vergesse ich nicht. Aber ich bin nicht dazu da um deine Arbeit zu machen.

Außerdem hattest du jetzt eine Woche Zeit dich intensiv mit diesem Thema zu beschäftigen und selbst einiges auszuprobieren...

EOT
Antworten