![]() |
Paramstr Dateiübergabe Problem
Hallo liebe Forumsuser :-D
Ich werde mich jetzt etwas kürzer fassen da mir eben der Firefox abgeschmiert ist und meinen Beitrag den ich innerhalb von 10 minuten getippt habe weg ist :( Ok also ich übergebe meinen Programm Dateien als Parameter, indem ich diese Dateien markiere und auf die exe oder eine verknüpfung zu der exe ziehe. Später ist noch eine Shellerweiterung geplant. Diese werden dann an eine Listbox übergeben. Hier der passende Code:
Delphi-Quellcode:
Mein Problem ist das wenn ich ca. 40 Dateien von "M:\Eigene Dateien\Eigene Bilder" übergeben will diese Fehlermeldung erscheint:
procedure TMainForm.FormCreate(Sender: TObject);
var i: integer; begin if ParamCount > 0 then for i := 1 to ParamCount do begin ListBox1.Items.Add(ParamStr(i)); end; end; ![]() Es wird dann nichts übergeben, jedoch wird bei 39 Dateien alles übergeben. Wenn ich ca. 50 Dateien in einen kurzen Pfad wie "D:\a" kopiere gehen diese alle ohne Probleme. Habe mich schon dumm und dusselig gesucht (Hier, in anderen Delphi Foren und google), aber nichts gefunden was auf mein Problem zutrifft. :gruebel: Meine Vermutung ist, das ParamStr irgendeine Begrenzung hat was die gesamte Länge der angegebenen Parameter betrifft und bei meiner Fehlermeldung der/die letzte/n Parameter abgeschnitten wird/werden und diese Datei deshalb nicht geöffnet werden kann. :freak: Deshalb poste ich hier und hoffe das jemand näheres darüber weiß oder vielleicht sogar einen Lösungsansatz hat. Vielen Dank im vorraus :hi: MfG Florian |
Re: Paramstr Dateiübergabe Problem
Ich habe da so eine dunkle Ahnung, dass die Länge der Kommandozeile begrenzt ist.
Delphi-Quellcode:
Mit dem Schnipsel oben kannst du prüfen, wieviel Info übernommen werden.
procedure TForm1.FormCreate(Sender: TObject);
begin // Kommandozeile in einem Memo anzeigen memo1.Scrollbars := ssBoth; memo1.lines.Text := CmdLine; // CmdLine ist eine Variable, die mit der API-Funktion GetCommandLineA befüllt wurde end; |
Re: Paramstr Dateiübergabe Problem
Erstmal Danke für die antwort.
Hmm das kann natürlich sein. Habe das von dir oben ausprobiert und da gibts den gleichen Fehler mit zu viel Dateien. Wenns "normal" viele Dateien wie oben sind gibt der mir die Pfade alle aus. :/ Weißt du oder jemand anderes ob es irgendeine andere Methode gibt? Wenn nicht ist es auch kein großes Problem, wäre halt nur schön wenn es theoretisch möglich wäre. Sonst mache ich es vielleicht per Drag & Drop auf die Listbox wenn der User mehr Dateien bearbeiten möchte. :) |
Re: Paramstr Dateiübergabe Problem
Zitat:
Schau dir mal im Explorer -> Extras->Ordneroptionen den Dateityp .DOC an. Winword wird dann so gestartet
Code:
und erhält die DDE-Nachricht:
"C:\Programme\Microsoft Office\OFFICE11\WINWORD.EXE" /n /dde
Code:
[REM _DDE_Direct][FileOpen("%1")]
|
Re: Paramstr Dateiübergabe Problem
Danke für den stups in die richtige Richtung. Werde mir das mal zu gemüte führen. Danke, klasse Forum hier! :)
|
Re: Paramstr Dateiübergabe Problem
Ich dösbaddel, warum schwer wenns auch einfach geht? ^^
Mein Tool soll ja später nur über die Shellerweiterung funktionieren oder halt manuell über Drag&Drop auf die Listbox wenn man die Files in das Programm bringen möchte... Das Drag&Drop geht ja (ist ja ned schwer ;)) Aber mit der ShellErweiterung hab ichs jetzt so gemacht: Gaaanz einfach, effektiv und vor allem schnell gelöst. Die config-datei von dem Tool wird ja eh in den Anwendungsdaten (wo die imho auch hingehört) abgelegt und deshalb nehme ich genau da eine Textdatei namens "Files.txt". Wenn ich jetzt über die ShellErweiterung die Dateien übergebe, werden diese von der dll in eine stringlist geschrieben und anschließend in diese Textdatei gespeichert. Anschließend wird diese beim starten des Programms eingelesen. Geht echt schnell, hab ich eben mal mit über 2100 Dateien getestet und man merkt nicht mal das was gemacht wurde ^^ Ich denke das ist ein guter Mittelweg von Geschwindigkeit und Aufwand *hoffe ich mal* :stupid: MfG Florian |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz