![]() |
mp3's mit meinem Programm Verknüpfen-Problem
hallo zusammen,
bitte nicht wütend werden, ich weiss dass das thema schon ein paarmal gefragt worden ist... ich arbeite an einem mp3player und darin hat es eine checkbox "als standartprogramm für mp3's". wird abgespeichert in einer .ini, ob checked oder nicht. bei jedem start des programms würd überprüft, ob eben haken drin oder nicht drin. wenn checked, dann muss jede mp3 datei mit meinem programm verknüpft werden, und bei rechtsklick auf eine mp3 datei ein menüpunkt 'öffnen mit ShowMp3' hinzugefügt werden. wenn möglich sollte das symbol der datei frei wählbar sein, sonst das symbol des programms. ich bin jetzt schon 2 stunden im internet und habe ziemlich viel code gefunden zu diesem thema, jeder ausprobiert und nichts hat funktioniertè jede mp3 datei wird immer mit musicmatch geöffnet... weiss da jemand vielleicht eine lösung für das problem?? ich habe win xp prof. + adminrechte |
Re: mp3's mit meinem Programm Verknüpfen-Problem
hi,
du must für dein programm die dateiendung registrieren ![]() funzt einwandfrei ;) vielleicht holt sich ja dein anderes prog immer wieder die registrierung zurück :? das mit dem icon hatten wir auch schon oft, such doch mal ;) |
Re: mp3's mit meinem Programm Verknüpfen-Problem
auf dieser seite war ich auch schon..
hab das mal so gelöst:
Delphi-Quellcode:
..funktioniert aber auch nicht...keine ahnung wiso...
InstallExt('.mp3', 'Öffnen mit ShowMp3', 'mp3-Datei', application.ExeName, paramstr(0), 0);
ist etwas falsch? edit: ok, das war falsch... aber auch mit
Delphi-Quellcode:
gehts nicht
InstallExt('.mp3', 'Öffnen mit ShowMp3', 'mp3-Datei', application.ExeName, '%1',0);
|
Re: mp3's mit meinem Programm Verknüpfen-Problem
hrm... lass mal den . bei .mp3 weg :)
|
Re: mp3's mit meinem Programm Verknüpfen-Problem
Moin Urban,
probier' es schlicht mal mit dem Extras-Menü aus dem Explorer. Extras\Ordneroptionen\Dateitypen Wähl die Endung dort aus, und ändere dann die Verknüpfung auf Dein Programm. Ich vermute mal, dass das andere Programm eine DDE-Verknüpfung aufgebaut hat, die Deine übersteuert. |
Re: mp3's mit meinem Programm Verknüpfen-Problem
funktioniert leider auch nicht...
aber in der registry ist unter mp3->standart der wert auf "öffnen mit showmp3" komisch, nicht? |
Re: mp3's mit meinem Programm Verknüpfen-Problem
Zitat:
so funktionierts..., warum nicht auch anders?? |
Re: mp3's mit meinem Programm Verknüpfen-Problem
Moin urbanbruhin,
Wenn du die Function von dieser Seite ![]() Aber das wirklich Wichtige, was du mal ändern solltest: Vertausche Öffnen mit ShowMp3 mit mp3-Datei in deiner Function bzw. lass die Leerzeichen bei Öffnen mit ShowMp3 weg. Das müsste dein Problem eigentlich beseitigen. |
Re: mp3's mit meinem Programm Verknüpfen-Problem
hallo Nogge,
ich habe nicht genau diese function verwendet, hab sie aber auch schon mal ausprobiert. ich benutzt diese:
Delphi-Quellcode:
aufgerufen habe ich sie jetzt mit:
function InstallExt(Extension, ExtDescription, FileDescription,
OpenWith, ParamString: string; IconIndex: Integer; ExtVerb: string = 'Open'): Boolean; var Reg: TRegistry; begin Reg := TRegistry.Create; try with Reg do begin RootKey := HKEY_CLASSES_ROOT; OpenKey(Extension, True); WriteString('', ExtDescription); OpenKey('\' + ExtDescription, True); WriteString('', FileDescription); OpenKey('DefaultIcon', True); WriteString('', OpenWith + ','+IntToStr(IconIndex)); OpenKey('\' + ExtDescription + '\Shell\'+ExtVerb+'\Command', True); WriteString('', '"' + OpenWith + '" "' + ParamString + '"'); end; Result := True; except Result := False; end; Reg.Free; end;
Delphi-Quellcode:
ich kapier einfach nicht, wiso das nicht klappt! in der registry steht bei (Standard) immer MEIN wert, also mp3-Datei...
InstallExt('mp3', 'mp3-Datei', 'Öffnen_mit_ShowMp3', application.ExeName, '"%1"',0);
|
Re: mp3's mit meinem Programm Verknüpfen-Problem
So, ich habe dir jetzt mal für deine Bedürfnisse eine Function geschrieben:
Delphi-Quellcode:
=> ExtDescription darf meiner Meinung nach keine Leerzeichen enthalten
function InstallExt(Extension, ExtDescription, FileDescription, ExecuteDescription,
OpenWith, ParamString: string; IconIndex: Integer = 0; ExtVerb: string = 'Open'): Boolean; var Reg:TRegistry; begin Result:=false; Reg:=TRegistry.Create; try Reg.RootKey:=HKEY_CLASSES_ROOT; if Reg.OpenKey(Extension,true) then begin Reg.WriteString('',ExtDescription); Reg.CloseKey; if Reg.OpenKey(ExtDescription,true) then begin Reg.WriteString('',FileDescription); if Reg.OpenKey('DefaultIcon',true) then begin { -- OpenKey öffnet ohne vorangestelltes '\' den beschriebenen Unterschlüssel, wenn vorhanden -- } Reg.WriteString('',OpenWith+','+inttostr(IconIndex)); Reg.CloseKey; if Reg.OpenKey(ExtDescription+'\Shell',true) then begin Reg.WriteString('',ExtVerb); // fett markieren if Reg.OpenKey(ExtVerb,true) then begin Reg.WriteString('',ExecuteDescription); // z.B. "Open with MyProgramm" if Reg.OpenKey('Command',true) then begin Reg.WriteString('','"'+OpenWith+'" '+ParamString); Reg.CloseKey; Result:=true; end; end; end; end; end; end; finally Reg.Free; end; { -- Icon für die neue Dateiendung setzen/aktualisieren -- } { -- benötigt die uses ShlObj -- } SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil); end; procedure TForm1.Button1Click(Sender: TObject); begin if InstallExt('.ttt','ttt-datei','my own ext','Play with MyProgramm', Application.ExeName,'"%1"',0,'Play') then begin showmessage('successful!'); end else showmessage('failure!'); end; => ExecuteDescription kannste so schreiben, wie du willst ;-) Am besten nutzt du auch wirklich den Vorteil des Rückgabewertes (if [...] then), um zukünftige Fehler schneller zu entdecken. |
Re: mp3's mit meinem Programm Verknüpfen-Problem
hallo Nogge,
vielen dank für deine mühe, aber es funzt immer noch nicht, obwohl 'successful!' erscheint... ich glaube ich gebs auf... |
Re: mp3's mit meinem Programm Verknüpfen-Problem
Hier treibt sich irgendwo meine
![]() Edit: Es gibt zwei Varianten im ZIP-Archiv. Eine benutzt die Registry-Unit von Borland, und da gibt es keinen Fehler (jedenfalls hat keiner bisher was gesagt). Die zweite Version benutzt das Win32-API, und dabei ist mir ein Parameterdreher unterlaufen. :oops: Im DF gibt´s sogar ´ne CSharp-Version. Habe ich nie erzählt, is´ aber so. :stupid: |
Re: mp3's mit meinem Programm Verknüpfen-Problem
Was passiert denn, wenn du mit Rechtklick auf die Datei gehst? Was wird dir zum Öffnen der Datei angeboten? Was ist fett markiert?
|
Re: mp3's mit meinem Programm Verknüpfen-Problem
also wegen der TFileTypeRegistration: die hab ich auch schon gefunden und heruntergeladen, weiss aber nicht genau was ich damit anfangen soll...
Zitat:
|
Re: mp3's mit meinem Programm Verknüpfen-Problem
ziemlich mysteriös^^
Wenn du MisicMatch nicht mehr breuchst, entferne ihn doch aus der Registry und versuche dann noch mal dein Glück. |
Re: mp3's mit meinem Programm Verknüpfen-Problem
Zitat:
![]() |
Re: mp3's mit meinem Programm Verknüpfen-Problem
naja, das problem ist, dass ich keine kompos installieren kann, da ich mal irgendetwas falsch gemacht habe...
ich habe jetzt alle einträge in der registry, die etwas mit musicmatch zu tun hatten, gelöscht, funzt aber immer noch nicht... :gruebel: ich glaube, ich lass das dann halt doch sein... :| |
Re: mp3's mit meinem Programm Verknüpfen-Problem
Zitat:
Ansonsten würde ich an deiner Stelle aufhören, wild in der Registry rumzulöschen. Vllt. solltest du lieber überlegen, ob du in letzter Zeit was an deinem System verändert hast, das u.U. die Probleme erklären würde. Ich meine, wenn ich höre, dass Peter Huth (@Hallo Elke! :hi:) erklären muss, dass man auch unter XP Home eingeschränkte User anlegt (weil einige mit Admin-Rechten surfen und sich wundern, wenn ihr System von Viren und Co. überrannt wird), und wenn ich dann höre, dass sich einige Experten dabei gleich noch selbst aussperren :lol:, ... na ja ... |
Re: mp3's mit meinem Programm Verknüpfen-Problem
ok, konnte diese klasse jetzt einbauen, änderte sich aber garnichts, nichtmal das menü bei einem rechtsklick :wall:
aber mir ist da gerade eine idee in den sinn gekommen: was würde passieren, wenn ich zuerst den dateityp ".mp3" deinstalliere (ftr.UnregisterExtension('.mp3')), und danach wieder installiere, allerdings mit meinem programm verknüpft? würden denn alle einträge (bis auf die standard-einträge) aus dem rechtsklickmenü gelöscht werden? oder bleiben die? war nur so eine idee. bitte benachrigtigt mich, falls es eine schlechte idee ist, noch bevor ich ungeduldig werde und es ausprobiere :roll: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:07 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