Archiv verlassen und diese Seite im Standarddesign anzeigen : Q->Execute/Eval ?
Hallo,
ich würde gerne wenn ich auf einen Button klicke ein Programm ausführen lassen....also starten lassen. Z.B wenn ich auf Button run drücke dass zum Beispiel der media-Player gestartet wird.
Gibt es da eine Möglichkeit ?
Dazu konnte ich bis jetzt noch nicht wirklich was brauchbaresfinden....
Danke euch
peschmae
04-10-2005, 23:15
QProcess?
MfG Peschmä
wenn ich auf Button run drücke dass zum Beispiel der media-Player gestartet wird.
Da dass mit sicherheit nich plattformunabhaengig ist, kannst auch die BOS API's direkt verwenden, wenn du die eingabe/ausgabe nicht wrappen willst und den overhaed scheust ...
such mal nach "system", und diverse "exec" Variationen ...
Ciao ...
anda_skoa
05-10-2005, 12:50
Definitiv QProcess.
exec und system blockieren
Ciao,
_
vielen dank für eure hilfe....
BOS API's ??? was ist BOS ?
ich werde mal sehen da ich bis heute nicht dazu gekommen um was es da geht...prinzipiell sollte es schon auf unix, MAC und Windows laufen ja...also das starten einer anderen software....
Mal sehen ob ich das auf die Reihe kriege (mit eurer Hilfe :o )
Danke schon mal vorweg
exec und system blockieren
Weder erzeugt exec() einen Prozess, noch blockiert es irgendwas. Die einzige Möglichkeit einen Prozess unter UNIX zu erzeugen ist fork() - blockiert wird nur, wenn der Vaterprozess das auch will, nämlich mit wait()/waitpid().
system() ist kein Systemaufruf sondern C-Library und macht tatsächlich fork() + exec() und wartet im Vaterprozeß auf die Beendigung seines gestarteten Kindprozesses. Dieser ist aber eine Bourne Shell, die den mitgegeben Kommandostring erst abarbeitet. Ein system("ps") blockiert daher, ein system("ps&") dagegen nicht, weil die Shell auf die Beendigung ihres Kindprozesses (Enkels) nicht wartet.
Mit QProcess bekommt man eine plattformunabhängige Schnittstelle, die aber letzendlich dann auch nur den kleinsten gemeinsamen Nenner anbietet. In der Regel genügt der aber.
Wenn man bereits Qt verwendet würde ich es mit QProcess versuchen, ansonsten würde ich eher ein paar #ifdefs schreiben als mir nur deswegen eine zusätzlich Crossplattform Bibliothek anzutun. Zudem schadet es IMHO auch nicht das Betriebssystem zu kennen.
Uwe
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.