![]() |
Dateien bei laufendem Programm in Liste einfügen
Hi,
ich habe die Dateiendung mp3 mit einem von mir programmiertem Player verknüpft, wenn der Player nicht läuft, ist das auch kein problem, doppelklick auf die datei, und schon startet mein Player mit dem angeklicktem Lied, ich checke beim Oncreate ob Paramstr mehr als 0 ist, und wenn ja, dann füge ich diese meiner Playliste hinzu...
Delphi-Quellcode:
das funtioniert ohne Probleme...
If (ParamCount>0) and
(FileExists(ParamStr(1))) then begin Loaded1 := False; While Loaded1 = False do begin if Paramstr(XYZ) = '' then begin Loaded1 := True; //Dateien beim Klick in Explorer hinzufügen end else begin LoadedFiles.Add(ParamStr(XYZ)); XYZ := XYZ +1; end; end; aber wenn das Programm schon läuft, wie mach ich das dann? Da das Programm dann ja schon läuft, wird nur nochmals das Programm gestartet und sofort wieder geschlossen, weil ich nicht möchte, das das Programm 2 mal gestartet werden kann... -------------------------------- so hab ich das gemacht:
Delphi-Quellcode:
-----------------------------------
unit not2times;
interface implementation uses windows,Dialogs,sysutils; var mHandle: THandle; Initialization mHandle := CreateMutex(nil,True,'SidebarXPV'); if GetLastError = ERROR_ALREADY_EXISTS then begin {showMessage('Anwendung läuft bereits!!!!!');} Halt; end; finalization if mHandle <> 0 then CloseHandle(mHandle) end. also wie kann man realisieren, das bei laufendem Programm angeklickte Lieder im Explorer zur Playliste hinzugefügt werden??? Wär echt super wenn mir jemand helfen könnte, selbst mein Chef hat keine Ahnung wie man das macht... und ich bin Lehrling... Hope to hear from U Danke schonmal im Vorraus!!!!! tom wer sich meinen Player...oder eher ne Sidebar mit Player anschaun will... es gibt hier schon die BETA Version: ![]() [edit=SirThornberry]Delphi-Tags gesetzt - Mfg, SirThornberry[/edit] |
Re: Dateien bei laufendem Programm in Liste einfügen
du musst von dem neu gestarten Programm das bereits laufende benachrichtigen. So kannst du zum Beispile mit wm_copydata informationen an ein anderes Fenster schicken (beispiele dazu gibts genug per suche)
|
Re: Dateien bei laufendem Programm in Liste einfügen
|
Re: Dateien bei laufendem Programm in Liste einfügen
Such mal nach "Doppelstart verhindern" und/oder "Doppelstart verhindern mit Parameterübergabe" (oder so ähnlich).
Du mußt einfach nur prüfen, ob dein Programm schon läuft und wenn dem so ist, schickst du ihm einenNachricht mit den Dateinamen und beendest das (neue) Programm wieder. |
Re: Dateien bei laufendem Programm in Liste einfügen
Hi,
wow mächtig schnell seid Ihr!!! Danke euch echt!!! ich denke mit dem wm_copydata könnte das wohl klappen. Allerdings wusste ich noch nicht das es sowas überhaupt gibt.. naja die Erfahrung fehlt halt noch..... *g* Aber hört sich logisch an für mich :-) ich muss also von der Unit die Überprüft ob das Ding schon läuft, einfach auch die parameter auslesen, und dann als Message quasi an die bereits laufende Instanz senden, und diese muss dann darauf reagieren und die Parameter nach Musik oder Videofiles durch checken und dann in die Playliste hinzufügen...ok gut aber wie? Hat einer ein Code Beispiel oder so? Ich hab leider kein Internet daheim, aber schaff dauernd daheim, bin nur beim Arbeiten online... Und ich weiß im moment nicht, wie ich dann darauf reagiere im laufendem Programm, muss ich einen Timer einbauen, der dauernd schaut ob was gesendet wurde, oder wie? So ähnlich wie WM_Query_endsession denk ich mal?? Ausserdem...sendet er das dann nicht an sich slebst??? Weil das handle, an das ich dann senden will, heisst ja genauso wie das laufende, das wieder geschlossen werden soll..... Aber so oder so DANKE ICH EUCH!!!!!!!!!!!!!!!! Echt perfekt!! tom |
Re: Dateien bei laufendem Programm in Liste einfügen
Hi,
also so ganz klappts noch nich, ich hab das nun so gmeacht, mit der Komponente OneInstance und bei Onshow dies: XYZ := 0; If (ParamCount>0) and (FileExists(ParamStr(1))) then begin While XYZ < (ParamCount -1) do begin LoadedFiles.Add(ParamStr(XYZ)); XYZ := XYZ +1; Loaded1 := True; end; end; if Loaded1 = True then begin Form8.JvPlayList1.AddItems(LoadedFiles); //wenn Programm mit Parametern gestartet wurde... end; da startet dann das Prog zwar, aber übernimmt keinen der Paramstr in die Playliste... und bei OneInstance habe ich ONSwitch dies eingebaut: procedure TForm1.OneInstance1Switch(Parameters: TStrings); begin Form8.JvPlaylist1.AddItems(Parameters); end; und das sollte doch eigentlich auch stimmen, oder nicht??? Hoe to hear from you!! Thanx tom |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz