Einzelnen Beitrag anzeigen

Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#1

Dateitypverknüpfung und Parameter mit Leerzeichen

  Alt 10. Sep 2010, 19:58
Hallo *,

ich habe eine Funktion (ich glaube von den Schweizern) verwendet, um meinen Dateityp mit meinem Programm zu verknüpfen. Funzt alles prima, die Datei wird in meinem Programm geladen.

Ein Problem besteht allerdings, wenn der Dateiname Leerzeichen enthält. Ich habe extra Anführungszeichen bei der Registrierung angegeben, aber diese werden nicht berücksichtigt, sodass jedes neue Wort ein neuer Parameter ist.

Hier mal die Funktion und der Aufruf:

Delphi-Quellcode:
function InstallExt(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;
end;

InstallExt('.abc', 'Meine-Datei', 'Datei importieren', ParamStr(0), '"%1"', 0);
Was habe ich nun falsch gemacht? Ich komme einfach nicht drauf.

Vielen Dank
  Mit Zitat antworten Zitat