AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi mp3's mit meinem Programm Verknüpfen-Problem
Thema durchsuchen
Ansicht
Themen-Optionen

mp3's mit meinem Programm Verknüpfen-Problem

Ein Thema von 100nF · begonnen am 8. Apr 2005 · letzter Beitrag vom 9. Apr 2005
Antwort Antwort
Seite 1 von 2  1 2      
100nF

Registriert seit: 7. Nov 2004
639 Beiträge
 
#1

mp3's mit meinem Programm Verknüpfen-Problem

  Alt 8. Apr 2005, 19:40
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
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#2

Re: mp3's mit meinem Programm Verknüpfen-Problem

  Alt 8. Apr 2005, 19:47
hi,

du must für dein programm die dateiendung registrieren
http://www.delphipraxis.net/internal...ct.php?t=27515
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

  Mit Zitat antworten Zitat
100nF

Registriert seit: 7. Nov 2004
639 Beiträge
 
#3

Re: mp3's mit meinem Programm Verknüpfen-Problem

  Alt 8. Apr 2005, 19:54
auf dieser seite war ich auch schon..
hab das mal so gelöst:
InstallExt('.mp3', 'Öffnen mit ShowMp3', 'mp3-Datei', application.ExeName, paramstr(0), 0); ..funktioniert aber auch nicht...keine ahnung wiso...
ist etwas falsch?

edit: ok, das war falsch...
aber auch mitInstallExt('.mp3', 'Öffnen mit ShowMp3', 'mp3-Datei', application.ExeName, '%1',0); gehts nicht
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#4

Re: mp3's mit meinem Programm Verknüpfen-Problem

  Alt 8. Apr 2005, 19:59
hrm... lass mal den . bei .mp3 weg

  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: mp3's mit meinem Programm Verknüpfen-Problem

  Alt 8. Apr 2005, 20:03
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.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
100nF

Registriert seit: 7. Nov 2004
639 Beiträge
 
#6

Re: mp3's mit meinem Programm Verknüpfen-Problem

  Alt 8. Apr 2005, 20:05
funktioniert leider auch nicht...
aber in der registry ist unter mp3->standart der wert auf "öffnen mit showmp3"

komisch, nicht?
  Mit Zitat antworten Zitat
100nF

Registriert seit: 7. Nov 2004
639 Beiträge
 
#7

Re: mp3's mit meinem Programm Verknüpfen-Problem

  Alt 8. Apr 2005, 20:07
Zitat von Christian Seehase:
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.

so funktionierts..., warum nicht auch anders??
  Mit Zitat antworten Zitat
Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#8

Re: mp3's mit meinem Programm Verknüpfen-Problem

  Alt 8. Apr 2005, 23:31
Moin urbanbruhin,
Wenn du die Function von dieser Seite InstallExt kopiert hast, ist der Punkt vor der Dateiendung egal. Ob du ihn nun setzt oder nicht, ist irrelevant. Auch wenns meiner Meinung nach mit nur einem Parameter ebenfalls sinnlos erscheint, schreib mal "%1" anstatt %1, vllt bringt's das gewünschte "Wunder" ;-)
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.
  Mit Zitat antworten Zitat
100nF

Registriert seit: 7. Nov 2004
639 Beiträge
 
#9

Re: mp3's mit meinem Programm Verknüpfen-Problem

  Alt 9. Apr 2005, 09:37
hallo Nogge,

ich habe nicht genau diese function verwendet, hab sie aber auch schon mal ausprobiert.
ich benutzt diese:
Delphi-Quellcode:
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;
aufgerufen habe ich sie jetzt mit:
InstallExt('mp3', 'mp3-Datei', 'Öffnen_mit_ShowMp3', application.ExeName, '"%1"',0); ich kapier einfach nicht, wiso das nicht klappt! in der registry steht bei (Standard) immer MEIN wert, also mp3-Datei...
  Mit Zitat antworten Zitat
Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#10

Re: mp3's mit meinem Programm Verknüpfen-Problem

  Alt 9. Apr 2005, 11:08
So, ich habe dir jetzt mal für deine Bedürfnisse eine Function geschrieben:
Delphi-Quellcode:
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;
=> ExtDescription darf meiner Meinung nach keine Leerzeichen enthalten
=> 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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 04:46 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