AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Programm-Parameter mit Leerzeichen

Ein Thema von benst · begonnen am 24. Mär 2006 · letzter Beitrag vom 28. Mär 2006
Antwort Antwort
Seite 1 von 2  1 2      
benst

Registriert seit: 20. Jun 2004
155 Beiträge
 
Delphi 5 Standard
 
#1

Programm-Parameter mit Leerzeichen

  Alt 24. Mär 2006, 21:30
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
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Programm-Parameter mit Leerzeichen

  Alt 24. Mär 2006, 21:32
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?
  Mit Zitat antworten Zitat
benst

Registriert seit: 20. Jun 2004
155 Beiträge
 
Delphi 5 Standard
 
#3

Re: Programm-Parameter mit Leerzeichen

  Alt 24. Mär 2006, 21:58
Ich meinte die Parameterübergabe, wenn ich z.B. a.txt doppelt anklicke.
Ben
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Programm-Parameter mit Leerzeichen

  Alt 24. Mär 2006, 22:05
die meint Matze sicher auch,
es geht um die Datei-Verknüpfung (Windows-Explorer -> Ordneroptionen -> Dateitypen)

gruss
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
benst

Registriert seit: 20. Jun 2004
155 Beiträge
 
Delphi 5 Standard
 
#5

Re: Programm-Parameter mit Leerzeichen

  Alt 24. Mär 2006, 22:24
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
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#6

Re: Programm-Parameter mit Leerzeichen

  Alt 25. Mär 2006, 09:27
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
benst

Registriert seit: 20. Jun 2004
155 Beiträge
 
Delphi 5 Standard
 
#7

Re: Programm-Parameter mit Leerzeichen

  Alt 25. Mär 2006, 10:53
Ich mache das ja genau so:
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
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#8

Re: Programm-Parameter mit Leerzeichen

  Alt 25. Mär 2006, 10:56
Ändere den Registy-Eintrag so ab, daß der Parameter %1 links und rechts nur von einem doppelten Anführungszeichen eingefaßt wird:
"E:\Programmierung\Delphi\...\Project1.exe" "%1" Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#9

Re: Programm-Parameter mit Leerzeichen

  Alt 25. Mär 2006, 11:01
habt Recht, so wie ich das sehe, ist da ein Fehler drin, ändere die Zeile
Reg.WriteString('', Format('"%s" "%s"', [OpenWith, ParamString])); in
Reg.WriteString('', Format('"%s" %s', [OpenWith, ParamString])); , dann geht es so wie es beschrieben wurde,


oder übergibt es so
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
Code:
InstallExt('.chess', 'Schach-Speicherstand', 'Schach', ParamStr(0), [color=#ff0000][b]'%1" "%2'[/b][/color],0);
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
benst

Registriert seit: 20. Jun 2004
155 Beiträge
 
Delphi 5 Standard
 
#10

Re: Programm-Parameter mit Leerzeichen

  Alt 25. Mär 2006, 12:38
That's it!
Danke, funst super!

Ben
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:25 Uhr.
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