Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Programm-Parameter mit Leerzeichen (https://www.delphipraxis.net/66108-programm-parameter-mit-leerzeichen.html)

benst 24. Mär 2006 20:30


Programm-Parameter mit Leerzeichen
 
Hi,
ich lese beim Starten meines Programm die Programm-Parameter aus, um ggf. übergebgene Dateien sofort in mein Programm zu laden - das funktioniert eigentlich auch ganz gut. Doch wenn der Pfad ein Leerzeichen enthält, wie z.B. "C:\Dokumente und Einstellungen\..", dann wird "C:\Dokumente" als erster Parameter erkannt, wodurch ich die Datei mit dem ersten Parameter nicht erreiche.
Deshalb hänge ich alle Parameter mit einem Leerzeichen aneinander und haue sie in eine String-Variable, prüfe dann ob die Datei existiert und lade sie dann.
Was jemand etwas besseres als alle Parameter hintereinander zu hängen?
Gruß
Ben

Matze 24. Mär 2006 20:32

Re: Programm-Parameter mit Leerzeichen
 
Hi,

normalerweise reicht es, den Pfad in Anführungszeichen ("Pfad mit Leerzeichen") zu setzen, damit er als ein Paremeter erkannt wird.

Oder stammen die Parameter nicht aus eine deiner Anwendungen? :gruebel:

benst 24. Mär 2006 20:58

Re: Programm-Parameter mit Leerzeichen
 
Ich meinte die Parameterübergabe, wenn ich z.B. a.txt doppelt anklicke.
Ben

MrKnogge 24. Mär 2006 21:05

Re: Programm-Parameter mit Leerzeichen
 
die meint Matze sicher auch,
es geht um die Datei-Verknüpfung (Windows-Explorer -> Ordneroptionen -> Dateitypen)

gruss

benst 24. Mär 2006 21:24

Re: Programm-Parameter mit Leerzeichen
 
Ich habe da "E:\Programmierung\Delphi\...\Project1.exe" ""%1"" eingetragen.
Diesen Eintrag habe ich erzeugen lassen mit ... http://www.dsdt.info/tipps/?id=236 .
Was muss ich da abändern, damit dass so ist, wie ihr das meint?
Gruß
Ben

himitsu 25. Mär 2006 08:27

Re: Programm-Parameter mit Leerzeichen
 
Wenn ich das richtig verstanden hab, dann genauso, wie es dort in der Beschreibung steht, also z.B.:
Delphi-Quellcode:
InstallExt('.txt', 'Textdatei', 'benst''s Texteditor',
  'C:\Programme\Textedit.exe', '"%1"');
Du kannst natürlich einiges auch per Variablen/Konstanten übergeben ...
Es könnte z.B 'C:\Programme\Textedit.exe' durch ParamStr(0) ersetzt werden, wenn das Programm, womit die Verknüpfung erstellt wird, identisch mit dem Programm ist, welches aufgerufen werden soll.

benst 25. Mär 2006 09:53

Re: Programm-Parameter mit Leerzeichen
 
Ich mache das ja genau so:
Delphi-Quellcode:
InstallExt('.chess', 'Schach-Speicherstand', 'Schach', ParamStr(0), '"%1"',0)
Aber wie bekomme ich das hin, dass der Parameter in Anführungszeichen übermittelt und trotz Leerzeichen als ein Parameter erkannt wird?
(So ist es nämlich nicht EIN Parameter und ich muss ihn wie oben beschrieben zusammensetzen.)

Ben

Hawkeye219 25. Mär 2006 09:56

Re: Programm-Parameter mit Leerzeichen
 
Ändere den Registy-Eintrag so ab, daß der Parameter %1 links und rechts nur von einem doppelten Anführungszeichen eingefaßt wird:
Delphi-Quellcode:
"E:\Programmierung\Delphi\...\Project1.exe" "%1"
Gruß Hawkeye

himitsu 25. Mär 2006 10:01

Re: Programm-Parameter mit Leerzeichen
 
habt Recht, so wie ich das sehe, ist da ein Fehler drin, ändere die Zeile
Delphi-Quellcode:
Reg.WriteString('', Format('"%s" "%s"', [OpenWith, ParamString]));
in
Delphi-Quellcode:
Reg.WriteString('', Format('"%s" %s', [OpenWith, ParamString]));
, dann geht es so wie es beschrieben wurde,


oder übergibt es so
Delphi-Quellcode:
InstallExt('.chess', 'Schach-Speicherstand', 'Schach', ParamStr(0), '%1',0);
also ohne die ".


Wobei ich dir zu ersterem raten würde, denn wenn man mehrere Parameter übergeben haben möchte, wird's etwas schwierig ... mir würde jedenfalls folgendes eigenartig vorkommen :roll:
Code:
InstallExt('.chess', 'Schach-Speicherstand', 'Schach', ParamStr(0), [color=#ff0000][b]'%1" "%2'[/b][/color],0);

benst 25. Mär 2006 11:38

Re: Programm-Parameter mit Leerzeichen
 
That's it!
Danke, funst super!

Ben


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:25 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz