AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Registry - FileExtensions eintragen
Thema durchsuchen
Ansicht
Themen-Optionen

Registry - FileExtensions eintragen

Ein Thema von Jarmen_Kell · begonnen am 22. Mär 2005 · letzter Beitrag vom 24. Mär 2005
Antwort Antwort
Seite 2 von 2     12   
MathiasSimmack
(Gast)

n/a Beiträge
 
#11

Re: Registry - FileExtensions eintragen

  Alt 23. Mär 2005, 14:52
Das ist auch unwichtig, weil es dir für dein Projekt vermutlich nicht helfen wird.
  Mit Zitat antworten Zitat
Jarmen_Kell

Registriert seit: 17. Mär 2005
188 Beiträge
 
#12

Re: Registry - FileExtensions eintragen

  Alt 23. Mär 2005, 15:05
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.


Oder so in der Art

Edit: Plural von "Problem" durch den Singular ersetzt - scheinbar habe ich beim schreiben vergessen, was mein 2. Prob war
  Mit Zitat antworten Zitat
Gregg

Registriert seit: 6. Mär 2005
Ort: Schwarzenberg
33 Beiträge
 
Delphi 3 Client/Server
 
#13

Re: Registry - FileExtensions eintragen

  Alt 23. Mär 2005, 23:56
Delphi-Quellcode:
   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)}
So Hui
hoffe ich konnte dir etwas helfen
Es gibt keine Liebe auf dieser Welt.
Es ist ein Traum, der uns gefällt.
Es gibt nur Lüge, Gier und Hass,
soviele Tränen dick und nass..
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#14

Re: Registry - FileExtensions eintragen

  Alt 24. Mär 2005, 00:07
Zitat von Jarmen_Kell:
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.
Genau und das könnte man mit WM_COPYDATA machen. Oder man nimmt die Unit von Nico: http://www.luckie-online.de/Delphi/Importe/Nico/
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Jarmen_Kell

Registriert seit: 17. Mär 2005
188 Beiträge
 
#15

Re: Registry - FileExtensions eintragen

  Alt 24. Mär 2005, 11:12
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.
  Mit Zitat antworten Zitat
Gregg

Registriert seit: 6. Mär 2005
Ort: Schwarzenberg
33 Beiträge
 
Delphi 3 Client/Server
 
#16

Re: Registry - FileExtensions eintragen

  Alt 24. Mär 2005, 13:23
Delphi-Quellcode:
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;
Ich überprüfe im Intervall von einer Sekunde mit einem OnTimer Event
Es gibt keine Liebe auf dieser Welt.
Es ist ein Traum, der uns gefällt.
Es gibt nur Lüge, Gier und Hass,
soviele Tränen dick und nass..
  Mit Zitat antworten Zitat
Jarmen_Kell

Registriert seit: 17. Mär 2005
188 Beiträge
 
#17

Re: Registry - FileExtensions eintragen

  Alt 24. Mär 2005, 18:14
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!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz