Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Dateiverknüfung auf eigenes Programm [Leerzeichen?] (https://www.delphipraxis.net/164682-dateiverknuefung-auf-eigenes-programm-%5Bleerzeichen-%5D.html)

Destroxi 24. Nov 2011 16:53

Dateiverknüfung auf eigenes Programm [Leerzeichen?]
 
Hi,
meine Frage: wie baue ich es ein dass Leerzeichen funktionieren bei diesem Code (zur Dateiverknüpfung aufs eigene Programm)?

Mein Code:
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;
und:
Delphi-Quellcode:
 If (ParamCount > 0) and (FileExists(ParamStr(1))) then ShowMessage(ParamStr(1));
Mfg, Destroxi

blackfin 24. Nov 2011 17:12

AW: Dateiverknüfung auf eigenes Programm [Leerzeichen?]
 
Parameter mit Leerzeichen müssen unter Windows in Anführungszeichen gesetzt werden, ansonsten wird aus einem Parameter viele Parameter.

Du kannst natürlich, falls du nicht mit Anführungszeichen schicken willst, diese im Programm dann wieder mit einer Logik zusammenfügen und prüfen, welche Parameter zusammen einen einzigen Parameter bilden, aber einfacher ists doch sicher, einfach gequoted zu senden? :-)

Destroxi 24. Nov 2011 17:36

AW: Dateiverknüfung auf eigenes Programm [Leerzeichen?]
 
Ahh Danke ;)
Geklärt, hab einfach bei
Delphi-Quellcode:
  Result := False;
  if Extension <> '' then
das eingesetzt:
Delphi-Quellcode:
  Result := False;
  ParamString := '"'+ParamString+'"';
  if Extension <> '' then
Mfg, Destroxi


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:01 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