AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi "Senden an" mit langen Dateinamen
Thema durchsuchen
Ansicht
Themen-Optionen

"Senden an" mit langen Dateinamen

Ein Thema von c.kauer · begonnen am 7. Sep 2006 · letzter Beitrag vom 7. Sep 2006
Antwort Antwort
Seite 1 von 2  1 2      
c.kauer
(Gast)

n/a Beiträge
 
#1

"Senden an" mit langen Dateinamen

  Alt 7. Sep 2006, 10:02
Hi Leute,

ich habe eine Problem:

Mein Programm soll mit einer Liste von Dateinamen via Parameter gestartet werden. Der User wählt im Explorer Dateien aus, und soll dann via "Senden an" Menü das Programm starten können.

Das funzt so weit auch.

Doch leider werden Teile von Dateinamen, die ein Leerzeichen enthalten als separate Parameter übergeben.

Weiß jemand wie ich es hinbekommen, dass solche Parameter in Anführungszeichen übergeben werden?

Vielen Dank im voraus!!!
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: "Senden an" mit langen Dateinamen

  Alt 7. Sep 2006, 10:23
Wenn Deinem Programm nur ein Parameter übergeben wird,
kannst Du doch mit ParamCount die Anzahl der Parameter ermitteln
Falls es mehr als ein Parameter sind weißt Du das ein langer Dateiname mit Leerzeichen
übergeben wurde.

Den Dateinamen kannst Du dann aus den Parametern rekonstruieren.

Ob es einen einfacheren Weg gibt, weiß ich nicht.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
c.kauer
(Gast)

n/a Beiträge
 
#3

Re: "Senden an" mit langen Dateinamen

  Alt 7. Sep 2006, 10:52
Desshalb schrieb ich "Liste von DateinamEN"

Bei einer Datei wäre das kein Problem; zugegeben, bei mehreren könnte ich mir die Dateinamen wohl auch zusammenbasten.

Aber gibt es keine elegantere Lösung?
  Mit Zitat antworten Zitat
Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#4

Re: "Senden an" mit langen Dateinamen

  Alt 7. Sep 2006, 11:15
Hi,

also ich hab das eben mal nachgebastelt und bei mir funzt das ohne Probleme:

Delphi-Quellcode:
For ii:=1 to ParamCount do
  ListBox1.Items.Add(ParamStr(ii));
In jeder Zeile ein Dateiname, auch inkl. Leerzeichen... Alles fehlerfrei

Habs mit Delphi 5 auf Win XP SP2 getestet...
Evtl. liegt der Fehler woanders?


Gruß
Stephan
Stephan B.
Wer andern eine Grube gräbt ist Bauarbeiter!
Wer im Glashaus sitzt, sollte sich lieber im Dunkeln ausziehen!
Außerdem dieser Satz kein Verb...
  Mit Zitat antworten Zitat
c.kauer
(Gast)

n/a Beiträge
 
#5

Re: "Senden an" mit langen Dateinamen

  Alt 7. Sep 2006, 12:58
Das kann ich fast schon nicht glauben:

Prog mit genau den 2 CodeZeilen, dann unter run Params c:\Langer Dateiname 1.0.3.pdf eintragen und in der Listbox sind 3 Einträge:

C:\Langer
Dateiname
1.0.3.pdf


Die Lösung wird irgendwo da liegen, das Windows die Dateinamen mit Anführungszeichen an das Programm übergibt, ich weiß nur nicht wie.


Grüße!!!
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: "Senden an" mit langen Dateinamen

  Alt 7. Sep 2006, 13:04
Ob sich das auch bei SendTo auswirkt weiß ich nicht.
Aber ist vielleicht einen Versuch wert?

Grüße
Klaus

Zitat:
Am 15.06.2004 15:05 tippte Gernot Wassmer in seine Tastatur:


> Ich will per Doppelclick im Explorer mein Programm mit
> der Datei, auf die ich doppelklicke, öffnen. Das funktioniert
> auch prima mit System.ParamStr(1) und einem entsprechenden
> Eintrag im registry HKEY_CLASSES_ROOT mit
> \shell\open\command .
> Problem sind lange Dateinamen (der Name der geöffneten
> Datei wird benötigt). Ich bekomm nur die verkürzte Version,
> auch wenn ich \shell\open\comman\myprogram.exe "%1"
> (d.h. mit " ") angebe.
> Kennt das jemand und weiss Abhilfe?

> Danke für jede Hilfe


> Gernot



Probier doch mal, \shell\open\comman\myprogram.exe "%L" in der Registry
einzutragen. Damit sollte dann der *vollständige* _Lange_ Pfad übergeben
werden.
Klaus
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: "Senden an" mit langen Dateinamen

  Alt 7. Sep 2006, 13:06
Moin c.kauer,

oben schreibst Du, dass das Problem auftritt, wenn Du die Daten per "Senden an" an das Programm geschickt werden, und jetzt gibst Du als Beispiel an, dass man es als Parameter in Run eintragen soll.

Dann mache mal "" um den Parameter in Run, und anschliessend probiere es mal direkt mit Senden an.
Windows macht das schon richtig, nur beim Run-Parameter musst Du es selber machen
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
c.kauer
(Gast)

n/a Beiträge
 
#8

Re: "Senden an" mit langen Dateinamen

  Alt 7. Sep 2006, 13:24
Windows macht es eben nicht richtig, zumindest nicht wenn ich den "Senden An" Link selbst erzeuge.

Mit dem Beispiel (Parameter unter Run eintragen) wollte ich nur zeigen, dass Steve nicht rechthaben kann. Das hat aber eigentlich nichts mit meiner Problematik zu tun.


@Klaus01:

Das Problem ist, dass mein Prog über eine .lnk Datei geöffnet wird, die im "Senden an" Ordner liegt. Dazu gibt es keinen Registry Eintrag. Aber ich denke ich werde das Problem lösen, indem ich einen neuen Popupmeneintrag in der Registry anlge und nicht mit "senden an" arbeite.

Danke



Gruß

Christian Kauer
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: "Senden an" mit langen Dateinamen

  Alt 7. Sep 2006, 13:31
Moin Christian,

seltsam...
Wenn ich eine oder mehrere Dateien über "Senden an" übergebe funktioniert das problemlos, nur wenn ich den Namen mittels des Run-Parameters übergebe funktioniert es nicht richtig.



Welche Delphi-Version, und welche Windows-Version verwendest Du?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
c.kauer
(Gast)

n/a Beiträge
 
#10

Re: "Senden an" mit langen Dateinamen

  Alt 7. Sep 2006, 13:39
Moin Christian,

wie erzeugst du denn "Senden an"-Link? Mit IShellLink?

Vielleicht mache ich dabei etwas falsch.

Nachtrag:
Ich wollte mal einen Link den ich automatisch erzeuge mit einer manuellen Verknüpfung vergleichen. Kann man die lnks überhaupt irgendwie anschauen? Ultra Edit öffnen sofort die Verknüpfte Datei.

Gruß
  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 18:41 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