QProcess unter Windows

Verschiedenes zu Qt
Antworten
zer0
Beiträge: 17
Registriert: 26. Februar 2008 16:14

QProcess unter Windows

Beitrag von zer0 »

ich will Firefox mit Argumenten starten! Unter Linux hat das wunderbar funkioniert aber unter windows nicht:


Code: Alles auswählen

QProcess::startDetached(firefox www.qt-forum.de)
Wie geht das ?
TBerger
Beiträge: 27
Registriert: 12. März 2007 09:47
Wohnort: Karlsruhe

Beitrag von TBerger »

Weil deine Firefox.exe wohl nicht im Systempfad eingetragen ist, wie unter Linux. Wenn du einfach firefox in deiner Windows-Console (Start->Ausführen->cmd.exe) eingibst, wird wahrscheinlich die gleiche Fehlermeldung kommen. Du musst schon den ganzen Pfad angeben, oder eben das Firefox-Verzeichnis in den PATH aufnehmen.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Oder, wie vor zwei Tagen schonmal hier besprochen QDesktopServices benutzen...
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
zer0
Beiträge: 17
Registriert: 26. Februar 2008 16:14

Beitrag von zer0 »

Ja also mit kompletten Pfad hab ich es natürlich auch schon probiert, da musst ich bei Windoof dann ja auch doppel Backslash machen damit er das rallt, aber trotz dessen startet er das nicht ! ich guck mir jetz mal QDesktopServices an !

Danke für eure Antworten ! :D

Anfügen wollte ich noch, dass er beim Dialog ausführen, dass Kommando firefox versteht!
zer0
Beiträge: 17
Registriert: 26. Februar 2008 16:14

Beitrag von zer0 »

Die Antwort ist der Richtige Aufruf des Firefox Browsers, oder eines anderen Programms! Windoof möchte das ganze gerne in Anführungszeichen.

Also so:

Code: Alles auswählen

QProcess::startDetached("\"C:\\Programme\\Mozilla Firefox\\firefox.exe\" www.qt-forum.de")
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Das hat nichts mit Windows zu tun. Jedes Betriebssystem möchte die Parameter in Anführungszeichen, wenn Leerzeichen im Wert sind. Woher soll es sonst wissen, ob das ein oder mehrere Parameter sind?
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.
C167
Beiträge: 105
Registriert: 9. Februar 2008 20:30

Beitrag von C167 »

wuerde es nicht auch reichen, die Methode

Code: Alles auswählen

bool QProcess::startDetached ( const QString & program, const QStringList & arguments, const QString & workingDirectory, qint64 * pid = 0 )   [static]
zu nutzen?
Qt4.4-tp1 hat geschrieben:Starts the program program with the arguments arguments in a new process, and detaches from it. Returns true on success; otherwise returns false. If the calling process exits, the detached process will continue to live.
On Unix, the started process will run in its own session and act like a daemon. On Windows, it will run as a regular standalone process.
On Windows, arguments that contain spaces are wrapped in quotes.
The process will be started in the directory workingDirectory.

If the function is successful then *pid is set to the process identifier of the started process.
Antworten