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
 
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, 10: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
 


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 13:34 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