![]() |
Re: Registry - FileExtensions eintragen
Das ist auch unwichtig, weil es dir für dein Projekt vermutlich nicht helfen wird.
|
Re: Registry - FileExtensions eintragen
Naja ich habe vereinzelt "MediaPlayer" und Mutex etc erspäht ... das ist schon mal gut (:
Also im Prinzip habe ich jetzt noch das Problem, dass beim Öffnen, einer nun ja erfolgreich registrierten Datei zwar das Prog geöffnet wird und der Parameter übergeben. Das Problem an der Sache ist nur, dass immer nur ein Dateiname übergeben wird. Vermutlich, weil normalerweise für jede Datei das Prog neu gestartet wird. Dies wird allerdings durch die Mutex gleich wieder gekillt. Also muss ich jetzt versuchen, dass vor der "Vernichtung" die Parameter an die Haupt-App übergeben werden. :gruebel: Oder so in der Art :zwinker: Edit: Plural von "Problem" durch den Singular ersetzt - scheinbar habe ich beim schreiben vergessen, was mein 2. Prob war ;) |
Re: Registry - FileExtensions eintragen
Delphi-Quellcode:
So Hui
assignfile(temp,(extractfiledrive(paramstr(0))+'\Mediaplayer_System\temp.dat')); {Weise der Variable temp die temporäre Datei zu}
if not fileexists(extractfiledrive(paramstr(0))+'\Mediaplayer_System\temp.dat') then {Wenn die temporäre Datei nicht existiert dann} rewrite(temp) {erstelle sie} else append(temp); {sonst öffne sie um Dateien anzuhängen} 99: {label 99} strin:=''; {setze den zwischenspeicher für den Dateinamen auf nichts zurück} if (paramcount>0) then {wenn einer oder mehrere Dateinamen übermittelt wurden dann} begin {mehre Dateien in Temporärer Datei speichern} while not fileexists(strin) do begin {solange (strin) nicht existiert füge den nächsten Parameter hinzu} i:=i+1; {da ich keine For-Schleife benutzen kann, aber der Parameter verändert werden soll} strin:=strin+paramstr(i); {Zwischenspeicher = Zw.Speicher + aktueller Parameter} end; writeln(temp,strin); {temp ist die temporäre auslagerungsdatei; Schreibe in temp eine neue Zeile mit dem Inhalt (strin)} if i<paramcount then goto 99; {wenn i kleiner als die Gesamtanzahl an Paramtern ist, dann gehe zu label 99} closefile(temp); {Schließe die Temporäre Datei} {Überprüfung ende} if GetLastError = ERROR_ALREADY_EXISTS then halt; {Wenn das Program schon geöffnet ist, schließe es (nachdem die temporäre Datei geschrieben wurde)} hoffe ich konnte dir etwas helfen |
Re: Registry - FileExtensions eintragen
Zitat:
![]() |
Re: Registry - FileExtensions eintragen
Also die Unit von Nico ist mir ehrlich gesagt irgendwie zu kompliziert.
Ich kann das natürlich einfach alles kopieren und in mein Prog einfügen - vermutlich ginge es auch, aber ich wills ja auch schon irgendwie verstehen (: Ich will nicht auch irgend ein Copy-n-Paste-Prog haben, bei dem ich das meißte nicht mal selber verstehe ;) Aber die Lösung von Gregg klingt für mich nachvollziehbar. Die Frage ist jetzt nur, wie ich das bereits aktive Prog dazu bringe, zu bemerken, dass die Temp-Datei jetzt von einer anderen Instanz geändert wurde. |
Re: Registry - FileExtensions eintragen
Delphi-Quellcode:
Ich überprüfe im Intervall von einer Sekunde mit einem OnTimer Event
procedure TForm1.Timer2Timer(Sender: TObject);
var j,groesse:integer; fmp:TFileStream; s:string; i:integer; label 1,3; begin if ((label1.caption<>'Verzeichnis') or fileexists(extractfiledrive(paramstr(0))+'\Mediaplayer_System\temp.dat')) and (mediaplayer1.error=0) then begin if fileexists(extractfiledrive(paramstr(0))+'\Mediaplayer_System\temp.dat') then {Überprüfe ob die temporäre Datei existiert und wenn ja dann} begin memo1.lines.loadfromfile(extractfiledrive(paramstr(0))+'\Mediaplayer_System\temp.dat'); {Der Inhalt der Playlist wird der inhalt der temporären Datei übergeben} listbox1.items:=memo1.lines; deletefile(extractfiledrive(paramstr(0))+'\Mediaplayer_System\temp.dat'); {lösche die temporäre Datei} {...Nochn paar andere Einstelungen...} playbutton.glyph:=pausebutton.glyph; if playlistnamen.checked=false then for i:=0 to memo1.lines.count-1 do listbox1.items[i]:=extractfilename(listbox1.items[i]); listbox1.sorted:=false; listbox1.itemindex:=0; zaehler:=0; maxlied:=memo1.Lines.count-1; Label1.caption:=extractfilename(memo1.lines[0]); mediaplayer1.close; mediaplayer1.filename:=memo1.lines[0]; FillID3TagInformation(mediaplayer1.filename,title,artist,album,year,comment,genre); mediaplayer1.open; trackbar1.max:=mediaplayer1.length; gauge1.maxvalue:=mediaplayer1.length; gesamtzeitsek:=(mediaplayer1.length div 1000); gesamtzeitmin:=0; while (gesamtzeitsek>=60) do begin gesamtzeitsek:=gesamtzeitsek-60; gesamtzeitmin:=gesamtzeitmin+1; end; if gesamtzeitsek<10 then gesamtzeit.caption:=inttostr(gesamtzeitmin)+':0'+inttostr(gesamtzeitsek) else gesamtzeit.caption:=inttostr(gesamtzeitmin)+':'+inttostr(gesamtzeitsek); mediaplayer1.play; end; |
Re: Registry - FileExtensions eintragen
Ja ok ist zwar natürlich weitaus unprofessioneller, aber das versteh' ich ^^
Kann ich ja sonst später immernoch durch das andere ersetzen. Danke Auch den anderen - gute Ratschläge, aber ich bin vermutlich einfach noch nicht weit genug! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:25 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