Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi max. Anzahl/Länge von Programmparametern (https://www.delphipraxis.net/98369-max-anzahl-laenge-von-programmparametern.html)

benst 26. Aug 2007 10:20


max. Anzahl/Länge von Programmparametern
 
Hi,

ich möchte an mein Programm Parameter übergeben... Wie ich damit umgehen muss, weiß ich... Ich habe aber folgendes Problem:
Ich übergebe die Parameter testweise folgendermaßen:
Einfach per Drag-and-Drop mehrere Dateien auf z.B. 'Project.exe' ziehen.
Wenn ich das mit ein paar Dateien mache funktioniert das prima, mache ich es doch mit z.B. 25 Dateien, so kommt folgende Fehlermeldung:

"Auf gas angegebene Gerät, bzw. den Pfad oder die Datei kann nicht zugegriffen werden. Sie verfügen eventuell nicht über ausreichende Berechtigung, um auf das Element zugreifen zu können."

Eine mögliche Erklärung für mich wäre, dass die Anzahl der Parameter oder die Anzahl der Parameterzeichen beschränkt generell unter Windows beschränkt ist und ich an diese Beschränkung gekommen bin. Ist es so? Wo liegt genau die Grenze? Wie kann ich trotzdem mehr übergeben (Alternativen)?
Ggf.: Interessehalber: Ist unter Linux die Beschränkung genauso?

(Habe es auch gerade mit IrfanView getestet und dort tritt das gleiche Problem auf.)

Gruß
Ben

Jelly 26. Aug 2007 10:29

Re: max. Anzahl/Länge von Programmparametern
 
Meines Wissens darf die Länge des Programmnamen mit Pfad die 255 Zeichen nicht überschreiten.

Garfield 26. Aug 2007 10:44

Re: max. Anzahl/Länge von Programmparametern
 
Ich meine mal gelesen zu haben, dass es da zwei Grenzen gibt. Für die Konsole 256 und für Windows 32000.

Garfield 26. Aug 2007 20:51

Re: max. Anzahl/Länge von Programmparametern
 
Zur Ergänzung: http://msdn2.microsoft.com/en-us/library/aa365247.aspx

himitsu 29. Okt 2007 20:05

Re: max. Anzahl/Länge von Programmparametern
 
nur haben Programm-Parameter doch eigentlich nüschts mit der maximalen Pfadlänge zu tun?

wie empfängst du die Dateien denn?


mein Programm (wo ich's grad getstet hab) arbeitet mit Unicode, also hab ich einfach mal ein paar mehr Dateien/Verzeichnisse (10.047 = der gesamte Windows-Ordner) reingezogen, womit ich ja wohl weit über den 32.000 Zeichen liegen würde.
und keine Probleme.

Garfield 29. Okt 2007 20:58

Re: max. Anzahl/Länge von Programmparametern
 
Zitat:

Zitat von himitsu
nur haben Programm-Parameter doch eigentlich nüschts mit der maximalen Pfadlänge zu tun?

Wenn es sich bei den Parametern um Dateinamen handelt schon, oder?

himitsu 29. Okt 2007 22:03

Re: max. Anzahl/Länge von Programmparametern
 
dann zählt aber jeder Dateiname einzeln, womit die Anzahl der Dateien keinen Einfluß hat.

diese Länge ist eine Speicherbegrenzung innerhalb der Dateisystemtreibertreiber, sowie der APIs für den Zugriff auf Dateien.
ANSI = 256 Zeichen (ohne Laufwerkskennung)
und 64 KB (2 Byte pro Zeichen = 32768) für WIDE

bei der Übergabe wird aber nur eine Namensliste übergeben, welche nicht über betroffenen APIs/Treiber läuft.


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