Einzelnen Beitrag anzeigen

JayRZay

Registriert seit: 4. Mär 2007
23 Beiträge
 
Delphi 7 Personal
 
#1

Autom. Dateiöffnen scheitert an Leerzeichen trotz "%1&q

  Alt 26. Mär 2007, 21:10
Hi, sorry dass ich schon wieder was frage, aber beim letzten Überarbeiten des Programms fallen mir lauter Schwächen auf, mit denen ich gar nicht gerechnet habe.

Ich hoffe allerdings, das war erstmal die letzte dumme Frage.

Mein Problem ist folgendes. Ich möchte per Windows meinen eigenen Dateityp automatisch per ParamStr(1) öffnen lassen. Klappt auch normalerweise aber gerade bemerke ich, dass es nicht klappt, wenn Leerzeichen im Dateinamen (oder den Ordnernamen, wie in meinem akuten Fall) sind.

Schon klar, Parameter gehen nur bis zum Leerzeichen. Aber ich habe meine Dateiendung korrekt mit "%1" statt nur %1 registriert. Sämtliche Foren geben, soweit ich sehen konnte, immer nur die fehlenden Anführungszeichen als Fehlerquelle an. Ich stehe vor einem Rätsel.

Die Registrierungszeile lautet:

InstallExt('bst', 'BLE', 'Bestellliste', ParamStr(0), '"%1"',1) Ich verwende XP, wenn das irgendeinen Unterschied machen sollte.

Danke für die Hilfe!

EDIT: Interessante Bemerkung: Wenn ich per "Ausführen" den Namen meines Programms angebe und in "..." den Dateinamen anhänge (also so, wie es eigentlich sein sollte!), funktioniert es trotz Leerzeichen. Also muss wohl irgendwas mit dem Registrieren falsch laufen. Ich sehe aber trotzdem nich, was.

EDIT2: Folgende Überlegung: Da mein Programm-Ordner ebenfalls Leerzeichen enthält, wird er beim Öffnen dann selbst in Anführungszeichen gesetzt? So dass sich z.B.:

"C:\Programm Ordner\Programm Name.exe *"

wenn man an die Position des Sternchens den ebenfalls eingehakten Dateinamen setzt, folgendes rauskommt:

"C:\Programm Ordner\Programm Name.exe "C:\Datei Ordner\Datei Name.bst"" ergibt, so dass die Aufteilung ergibt:

1. "C:\Programm Ordner\Programm Name.exe "
2. C:\Datei Ordner\Datei Name.bst
3. ""

Also durch die doppelten Anführungszeichen der Dateiname ausgeklammert, statt eingeklammert, wird? Wenn ja, gibt es Auswege oder eine Möglichkeit, zu testen obs daran überhaupt liegt?
  Mit Zitat antworten Zitat