Entwickler-Ecke

Windows API - Parameter während des Ausführens übergeben


XMagic - So 14.08.05 11:49
Titel: Parameter während des Ausführens übergeben
Hallo,
ich habe mich an einen Media-Player gewagt und bin auch recht gut dabei.
Die praktische Variante mit den Parametern, eine Audio-Datei zu öffnen klappt sehr gut, allerdings will man ja evtl. auch nachdem ein Programm gestartet ist etwas anderes anhören und klickt somit auf eine andere Datei.

Und nun folgt mein Problem: Er startet das Programm ein zweites mal und beide Audio-Datein laufen paralell ab.
Ich würde es gern so machen, dass er das andere in die Playlist packt, dazu müsste aber der zweite Media-Player zum Start prüfen, ob bereits Einer offen ist, den Parameter, den er hat, an den primären Player weiterleiten und sich dann schließen.

Ist es also möglich den Parameter an ein laufendes Programm zu übergeben?
Zu dem Rest hab ich schon etwas Passendes gefunden.

Danke im Vorraus!


Moderiert von user profile iconTino: Topic aus Multimedia / Spiele / Grafik verschoben am So 14.08.2005 um 12:28


Sprint - So 14.08.05 11:59

Da gibt es verschiedene Lösungswege. Per WM_COPYDATA kannst du z.B. an die erste Instanz deiner Anwendung den Dateinamen schicken, der abgespielt werden soll. Die zweite Instanz beendet sich dann selber.
Oder du suchst per FindWindow deine erste Instanz. Schickst eine SC_CLOSE Nachricht, damit sich die erste Instanz beendet.
Weitere Möglichkeiten wären über MMF, RegisterWindowMessage etc.


Tino - So 14.08.05 12:27

Hallo!

Schau doch einfach mal in die FAQ. ;-)

...verhindern dass die Anwendung mehrmals gestartet wird? [http://www.delphi-forum.de/topic_verhindern+dass+die+Anwendung+mehrmals+gestartet+wird_19370.html]
...die Startparameter einer anderen Instanz übergeben? [http://www.delphi-forum.de/topic_die+Startparameter+einer+anderen+Instanz+uebergeben_20679.html]

Gruß
Tino


XMagic - So 14.08.05 13:46

Hallo,
Danke an euch Beide für die schnelle Hilfe ;).
Das ist mir FAQ ist mir peinlich, eigentlich hab ich die SuFu benutzt, habe aber wohl die falschen Wörter eingegeben.