GetCommandLine - Mehrere Files öffnen
-
Ich verwende die Funktion GetCommandLine um Files mit meinem programm zu öffnen. (Ein MediaPlayer).
Wenn ich in WinAMP mehrere Dateien mit 'öffnen mit' öffnen werden alle diese items in die playlist geladen.
Ich versuche im Grunde genommen genau dasselbe doch leider steht in meiner commandline immer nur das letzte lied (von den liedern die mit 'öffnen mit' ausgewählt wurden).
Wie komme ich an die paths der anderen lieder?
-
vieleicht hilft CommandLineToArgvW
-
CommandLineToArgvW zerlegt doch nur die bereits gelesene Commandline!?
Die commandline hab ich ja schon, zerlege sie auch korrekt und kann mit den werte arbeiten. Jedoch ist wie gesagt in der commandline immer nur der pfad meiner exe (der ja immer da ist) und der pfad der letzten mp3. Von den anderen mp3-pfaden fehlt in der commandline jede spur.
(Als Compiler verwende ich den BDS2006. Aber ich kann mir nicht vorstellen das der irgendwas an der winapi funktion veränder?)
-
Ne das liegt daran, dass beim Befehl 'Öffnen mit...' lediglich die ausgewählte Datei (also die Datei, auf die der Rechtsklick vollzogen wurde) an dein Programm (über die CmdLine) übermittelt wird.
-
OK, danke. Damit weis ich das zumindest mein code funktioniert.
Aber jetzt stellt sich die Frage wie Winamp das dann macht? Da erscheinen immer alle lieder in der playlist und nicht nur das letzte.
-
Puh, dazu musst du IMHO über die Shell gehen, is wohl ziemlich kompliziert...hatte dazu mal n Tutorial, was glaube ich sogar ganz gut war...Ich werd das mal suchen
.Mal ne Frage dazu:
Gen.d.Pz.Tr.Seb schrieb:
Die commandline hab ich ja schon, zerlege sie auch korrekt und kann mit den werte arbeiten.
Kannst du mir mal den Code schicken, mit dem du die Command-Line parst ? (bitte
). Würde mich mal interessieren.Dann noch ein Tipp:
Wenn du testen willst, ob deine Parsing-Funktion funktioniert, kannst Du meherere Musikdateien auf die Executeable deine Players ziehen, und ihn damit starten, dann sollte die Command-Line deines Players die Pfade aller 'gedroppten' Dateien enthalten.
-
Vielen Dank für den Tipp!
So geht es und ich habe erstmal eine bestätigung das es mit multiplen dateien auch funktioniert!

Also eigentlich ist meine Funktion äußerst primitiv und mit borland-vcl-elementen vollgestopft.
Gut, es sollte zwar trotzdem verständlich sein, aber wie gesagt komme ich aus der vcl ecke (habe c eigentlich nie richtig gelernt) und verwende die winapi nur wenn es unumgänglich oder einfach einfacher ist als die vcl.Und wie schon erwähnt lese ich nur die pfade aus und sonst nichts. (Also nur string-zerlegung)
Aber wenn du dir denn code unbedingt antun willst dann meld dich nochmal und ich schick ihn dir.

-
Achso, ne aber danke! Mit VCL arbeite ich nicht
.