Einzelnen Beitrag anzeigen

Jarmen_Kell

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

Registry - FileExtensions eintragen

  Alt 22. Mär 2005, 18:10
Also unter der folgenden Url

http://www.dsdt.info/tipps/?id=236

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:
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);
Dann in TMainform:

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.



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


Joa, mal gucken, ob das jemand erklären kann ^^
Naja bestimmt
  Mit Zitat antworten Zitat