externe Programme aufrufen
-
Sorry, dass ich hier meine Frage reinposte aber ich habe ein ähnliches Problem.
Ich möchte aus meinem Programm den MediaPlayer mit einem MP3-Lied als Paramtere aufrufen. Allerdings führt system den Befehl nur bis zum ersten Leerzeichen aus. Gibt es vielleicht eine Möglichkeit diese mit zu übertragen.
Beispiel:
system("\"C:\\windows\\Media Player\\mplayer.exe G:\\MP3\\lied.mp3\"") ;
Dann bekomme etwa solch eine Ausgabe:
"Befehl oder Datei "C:\windows\Media" nicht gefundenOder gibt es vielleicht auch die Möglichkeit die MP3-Datei mit dem standardmäßig unter Windows verknüpften Programm zu öffnen?
-
1. der media player ist kein optimaler player
ansonsten musst du den anwendungspfad und den dfateipfad getrennt in anführunsstriche setzen:system("\"C:\\windows\\Media Player\\mplayer.exe\" \"G:\\MP3\\lied.mp3\"") ;
-
So wie sich das für mich darstellt willst du ein Frontend o.ä. schreiben. Da du die Rückgabe des augerufenen Programs brauchst ist system() nicht die ideale wahl. Es is OS-Abhängig wie du das lösst bzw. mit welchen Funktionen aber der allgemeine Weg ist, pipe erzeugen neuen prozess erzeugen und die Standartausgabe und Eingabe des neuen Prozesses umlenken. Dann kannst du mit dem Prozess kommunizieren. Kannst ja mal nach IPC googlen...
-
@Jarvis
Für dein Problem gibts auch eine WinAPI-Funktion. Leider weiß ich den Namen jetzt nicht auswendig.
-
meinst vielleicht ShellExecute(..)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/functions/shellexecute.asp
-
http://www.c-plusplus.net/forum/viewtopic.php?t=39453
unter Unix/Linux/POSIX sollte man lieber die man: execve(2) Funktionen benutzen!
-
@miller_m
Nein, ich meinte eine WinAPI mit der man Multimediadateien abspielen kann. Hab sowas schon mal gesehen. Ich glaub es war auf www.vb-archiv.de. Ist zwar VB-Code, aber die APIs sind die gleichen ;).
-
Ich werde dieses "ShellExecute" mal ausrobieren. Der System() Befehl funktioniert nämlich auch nicht mit 2 paar Anführungsstrichen.
Frauke2k schrieb:
ansonsten musst du den anwendungspfad und den dfateipfad getrennt in anführunsstriche setzen:
system("\"C:\\windows\\Media Player\\mplayer.exe\" \"G:\\MP3\\lied.mp3\"") ;
EDIT:
@AJ: Soweit ich weiß, habe ich noch nie was mit APIs gemacht. Haben das in der Schule noch nicht durchgenommen. Versuche es deshalb erstmal mit dem ShellExecute
-
Gehört nicht einfach nur Media Player in Anführungszeichen??
Wie verhält es sich denn, wenn du das ganze in die Konsole eingibst?
-
Nein, man muss schon den ganzen Pfad in Anführungszeichen packen.
Auf der Konsole klappt alles wunderbar.
-
AJ schrieb:
@miller_m
Nein, ich meinte eine WinAPI mit der man Multimediadateien abspielen kann. Hab sowas schon mal gesehen. Ich glaub es war auf www.vb-archiv.de. Ist zwar VB-Code, aber die APIs sind die gleichen ;).Die Funktion heisst PlaySound() ...