![]() |
Registry - FileExtensions eintragen
Also unter der folgenden Url
![]() habe ich eine Function gefunden, um Dateiendungen in die Registry einzutragen. So das ganze sieht bei mir jetzt so aus. Also auf einem Form befindet sich eine Check-List-Box (ClBoxFileAssis) u.A mit folgenden Items: .mp2 .mp3 .wma Dan wird bei einem ButtonOnClick das folgende gemacht:
Delphi-Quellcode:
Dann in TMainform:
var
I:Integer; begin [...] for I:=0 to CLBoxFileAssis.Items.Count do if CLBoxFileAssis.Checked[I] then mainform.RegistExtension(ClBoxFileAssis.Items[I],ClBoxFileAssis.Items[I] + '-File','PhynPlayer',mainform.pppath + 'phynplayer.exe',ParamStr(0),'"%1"',0);
Delphi-Quellcode:
function Tmainform.RegistExtension(Extension, ExtDescription, FileDescription,
OpenWith, ParamString: string; IconIndex: Integer = 0): Boolean; var Reg: TRegistry; begin Result := False; if Extension <> '' then begin if Extension[1] <> '.' then Extension := '.' + Extension; Reg := TRegistry.Create; try Reg.RootKey := HKEY_CLASSES_ROOT; if Reg.OpenKey(Extension, True) then begin Reg.WriteString('', ExtDescription); if Reg.OpenKey('\' + ExtDescription, True) then begin Reg.WriteString('', FileDescription); if Reg.OpenKey('DefaultIcon', True) then begin Reg.WriteString('', Format('%s,%d', [OpenWith, IconIndex])); if Reg.OpenKey('\' + ExtDescription + '\Shell\Open\Command', True) then begin Reg.WriteString('', Format('"%s" "%s"', [OpenWith, ParamString])); Result:=True; end; end; end; end; finally Reg.Free; end; end; Nun erscheint der folgende Fehler: "Incompatible Types: Integer and String" soweit recht logisch. Aber in diesem Fall weiß ich nicht, was hier falsch ist. :wiejetzt: Und dann noch etwas: würden damit beim Aufruf mehrerer Dateien über den Explorer auch alle Datei-Namen an das Prog übermittelt werden, oder nur einer davon? Und denn Sinn von ParamStr(0), '"%1"' habe ich auch nicht so ganz verstanden :gruebel: Joa, mal gucken, ob das jemand erklären kann ^^ Naja bestimmt :thumb: |
Re: Registry - FileExtensions eintragen
Zitat:
Zitat:
Zitat:
Zitat:
|
Re: Registry - FileExtensions eintragen
Fehler: Ja, er ist deutlich, aber hier gehört ein Integer hin und da ist auch einer!
Instanzen: Gut ist bei mir aufgrund einer Mutex nicht möglich, aber ich werd' mich noch mal damit befassen Parameter: Danke Nachdenken: Wenn ich es mir erklären könnte, würde ich hier nicht posten |
Re: Registry - FileExtensions eintragen
Zitat:
|
Re: Registry - FileExtensions eintragen
Da:
Delphi-Quellcode:
als Aufruf folgender Funktion:
mainform.RegistExtension(ClBoxFileAssis.Items[I],ClBoxFileAssis.Items[I] + '-File','PhynPlayer',mainform.pppath + 'phynplayer.exe',ParamStr(0),'"%1"',0);
Delphi-Quellcode:
function Tmainform.RegistExtension(Extension, ExtDescription, FileDescription,
OpenWith, ParamString: string; IconIndex: Integer = 0): Boolean; |
Re: Registry - FileExtensions eintragen
Zitat:
Zitat:
|
Re: Registry - FileExtensions eintragen
Bei mir klappts so:
Delphi-Quellcode:
InstallExt = RegistExtension
InstallExt('.mp3', 'MP3 - Datei', 'MP3 Audio', Application.ExeName, '%1',0);
|
Re: Registry - FileExtensions eintragen
Ja kuhl jetzt klappt das.
Möglicherweise lag' der Fehler nicht mal unbedingt da :oops: Jetzt muss ich nur noch zusehen, dass ich damit mehrere Datei-Parameter an die Appi bekomme, aber ich glaub' das habe ich schon. Und dann gucken, wie ich das noch mit der Mutex vereinbaren kann. :gruebel: Na, fällt mir schon noch ein Danke vielmals! ( Vor allem, wenn das wirklich gar nicht der Hauptfehler gewesen sein sollte :roll: ) |
Re: Registry - FileExtensions eintragen
Delphi-Quellcode:
Das is meine Form.Create Methode
procedure TForm1.FormCreate(Sender: TObject);
type Einstellungen = record Lautstaerke : integer; Skin : string[1]; {Buttons} playlistnamen : boolean; {Vollst. Namen anzeigen?} Color : Tcolor; {Hintergrund} Color_ue : Tcolor; {Ueberschriftenfarbe} Color_sch : Tcolor; {Schriftfarbe} Font_ue : TFont; {Schriftart(Ueberschriften)} Font : TFont; {Schriftart(Normalschriften)} end; var i,j:integer; groesse:longint; Sem: THandle; strin:string; Mutex: THandle; Was:Einstellungen; f:file of byte; temp:textfile; label 99; begin if paramcount>0 then begin i:=0; assignfile(temp,(extractfiledrive(paramstr(0))+'\Mediaplayer_System\temp.dat')); if not fileexists(extractfiledrive(paramstr(0))+'\Mediaplayer_System\temp.dat') then rewrite(temp) else append(temp); 99: strin:=''; if (paramcount>0) then begin {mehre Dateien in Temporärer Datei speichern} while not fileexists(strin) do begin i:=i+1; strin:=strin+paramstr(i); end; writeln(temp,strin); if i<paramcount then goto 99; closefile(temp); {Überprüfung ende} if GetLastError = ERROR_ALREADY_EXISTS then halt; listbox1.items.clear; listbox1.items.add(extractfilename(strin)); maxlied:=1; mediaplayer1.close; Label1.caption:=extractfilename(strin); FillID3TagInformation(strin, Title,Artist,Album,Year,Comment, Genre); mediaplayer1.filename:=strin; mediaplayer1.open; SetMPVolume(mediaplayer1,trackbar2.position); gesamtzeitsek:=(mediaplayer1.length div 1000); gesamtzeitmin:=0; trackbar1.max:=mediaplayer1.length; gauge1.maxvalue:=mediaplayer1.length; 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; end; for i:=0 to MaxID3Genre do genre.items.add(ID3Genre[i]); MediaplayerMsg := RegisterWindowMessage('Mediaplayer'); Mutex := CreateMutex(nil, False, 'Mediaplayer'); if GetLastError = ERROR_ALREADY_EXISTS then halt; if Mutex <> 0 then ReleaseMutex(Mutex); Hoffe ich konnte helfen |
Re: Registry - FileExtensions eintragen
Ô.o
Ah ja ... also ich muss gestehen, dass sieht toll aus :roll: Aber ich hab KP, was das alles soll :gruebel: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:24 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