AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Maximallänge für übergebenen Parameterstring?
Thema durchsuchen
Ansicht
Themen-Optionen

Maximallänge für übergebenen Parameterstring?

Ein Thema von PeterPanino · begonnen am 25. Dez 2006 · letzter Beitrag vom 26. Dez 2006
Antwort Antwort
PeterPanino

Registriert seit: 4. Sep 2004
1.451 Beiträge
 
Delphi 10.4 Sydney
 
#1

Maximallänge für übergebenen Parameterstring?

  Alt 25. Dez 2006, 19:06
Gibt es eigentlich eine maximale Länge für den Parameter-String, der beim Start eines Programmes mit ShellExecute in lpParameters übergeben werden kann?

Delphi-Quellcode:
HINSTANCE ShellExecute(
    HWND hwnd,
    LPCTSTR lpOperation,
    LPCTSTR lpFile,
    LPCTSTR lpParameters,
    LPCTSTR lpDirectory,
    INT nShowCmd
);
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Maximallänge für übergebenen Parameterstring?

  Alt 25. Dez 2006, 19:21
Hallo,

nicht direkt - aber es wird (abgesehen von W2K) ein 32KB-Limit für die commandline angegeben. Du möchtest dir dazu vielleicht die Dokumentation zu CreateProcess() durchlesen.

Freundliche Grüße
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.451 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Maximallänge für übergebenen Parameterstring?

  Alt 25. Dez 2006, 21:39
Vielen Dank! Ich nehme an, CreateProcess wird von ShellExecute aufgerufen?

Was ist sonst die beste und einfachste Methode, einem zu startenden Programm einen String beliebiger Länge (oder noch besser eine Stringliste) zu übergeben?

Ebenfalls freundliche und friedliche Grüße!
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

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

Re: Maximallänge für übergebenen Parameterstring?

  Alt 25. Dez 2006, 21:40
Moin Peter,

vielleicht so, wie es auch verschiedenen Konsolenprogramme machen:
Man übergibt den Pfad zu einer Datei, in der dann die Strings stehen.
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
PeterPanino

Registriert seit: 4. Sep 2004
1.451 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Maximallänge für übergebenen Parameterstring?

  Alt 25. Dez 2006, 21:58
Zitat von Christian Seehase:
Moin Peter,

vielleicht so, wie es auch verschiedenen Konsolenprogramme machen:
Man übergibt den Pfad zu einer Datei, in der dann die Strings stehen.
Ich kann mir vorstellen, dass das fehleranfällig ist, wenn nach der Erzeugung der Zwischendatei durch das aufrufende Programm das aufgerufene Programm die Zwischendatei möglicherweise noch nicht vorfindet ...?
  Mit Zitat antworten Zitat
Benutzerbild von GuenterS
GuenterS

Registriert seit: 3. Mai 2004
Ort: Österreich > Bad Vöslau
760 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Maximallänge für übergebenen Parameterstring?

  Alt 26. Dez 2006, 10:09
Dann muss Dein Programm eben die Datei erstellen und erst nach der Erstellung das andere Programm starten.
Günter
Pünktlichkeit ist die Fähigkeit vorherzusagen um wieviel sich der Andere verspäten wird.
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Maximallänge für übergebenen Parameterstring?

  Alt 26. Dez 2006, 10:27
Du brauchst doch keine Datei. Lass das Datei von STDIN lesen und lass dein Programm darein schreiben.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

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

Re: Maximallänge für übergebenen Parameterstring?

  Alt 26. Dez 2006, 23:48
Moin Martin,

Zitat von Chewie:
Du brauchst doch keine Datei. Lass das Datei von STDIN lesen und lass dein Programm darein schreiben.
und wie soll damit die maximale Zeichenzahl für die Kommandozeile umgangen werden?
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
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Maximallänge für übergebenen Parameterstring?

  Alt 26. Dez 2006, 23:53
Zitat von Christian Seehase:
Moin Martin,

Zitat von Chewie:
Du brauchst doch keine Datei. Lass das Datei von STDIN lesen und lass dein Programm darein schreiben.
und wie soll damit die maximale Zeichenzahl für die Kommandozeile umgangen werden?

Äh, ich seh gerade, dass mein Satz keinen Sinn ergibt. "Lass das Programm von STDIN lesen und lass dein Programm darein schreiben." sollte das heißen

Aber vorausgesetzt, du hast den Satz so verstanden, sehe ich das Problem nicht so ganz. Die Zeichenlimitierung bezieht sich ja auf die Kommandozeile, wenn ich in die Standardausgabe schreibe und von dort lese, wird das ja nicht tangiert. STDOUT bzw. STDIN sind ja so eine virtuelle Dateien, ich würde vermuten, dass dort erst bei 2 GB Schluss ist.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Antwort Antwort


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 10:39 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