Re: ShellExecute - Paremeter Filename auf 2K begrenzt

von Jens Geyer » Donnerstag, 28. August 2003



> Was muss ich feststellen:
> Wenn der Link im Shortcut-File länger als 2K ist kommt auch blos der
> gleiche Fehler. Jetzt hab ich meine Zeit sinnlos mit der von MS
> angegeben Lösung verschwendet. :(

--- aus KB263909 ---
SYMPTOMS
When you use the ShellExecute or ShellExecuteEx function on version 4.0 of
the Shell32.dll file to open a URL, the URL is limited to (MAX_PATH - 1)
characters. A URL should be able to be as long as (INTERNET_MAX_URL_LENGTH -
1) (defined in Wininet.h) characters.
--- schnipp ---

In der Wininet.h ist das so definiert:

#define INTERNET_MAX_PATH_LENGTH 2048
#define INTERNET_MAX_SCHEME_LENGTH 32 // longest protocol name
length
#define INTERNET_MAX_URL_LENGTH (INTERNET_MAX_SCHEME_LENGTH \
+ sizeof("://") \
+ INTERNET_MAX_PATH_LENGTH)

Also kann die URL niemals länger als 2048 + 32 + 3 Zeichen werden, alles
andere geht eben nicht. Genau diese Tatsache wollte Dir Michael in seinem
Posting bereits mitteilen.

JensG





Re: ShellExecute - Paremeter Filename auf 2K begrenzt

von Robert Rehrl » Donnerstag, 28. August 2003



Hallo Torsten,

kannst nicht einfach mehrere Calls mit kürzeren Adress-
angaben verwenden?

Oder falls dann noch etwas eingegeben werden muss,
einfach über ne nette SMTP-Klasse von CodeProject
versenden. (Da gibts welche, die sogar Attachments
usw. unterstützen.)

cu
Robert





Re: ShellExecute - Paremeter Filename auf 2K begrenzt

von Michael Mundt » Donnerstag, 28. August 2003



Torsten Kraus berichtete am 28.08.2003 10:33:

???
Das schrieb ich doch schon, dass per ShellExecute bei 2K zwangsläufig
Schluss ist.

Aber versuchs mal mit COM:

IWebBrowser2::Navigate(...)

Erwartet einen BSTR und sonst noch was.
Dann geht aber (imho) in jedem Fall der IE auf, nicht der (evt. anders
gesetzte) Standardbrowser.
Von Längenbegrenzungen seh ich da (erst mal) nix.

m^2







Re: ShellExecute - Paremeter Filename auf 2K begrenzt

von torsten.kraus » Donnerstag, 28. August 2003






4.0 of
- 1)
(INTERNET_MAX_URL_LENGTH -
alles
seinem

Im Artikel den Michael so freundlich war zu nennen heist es:

This problem can be overcome by creating a temporary Internet shortcut
file that contains the long URL and passing the Internet shortcut file
to ShellExecute or ShellExecuteEx. After calling ShellExecute or
ShellExecuteEx, this file can safely be deleted.

Die dort beschriebene "Lösung" führt aber zum selben Verhalten.

ciao
Torsten



Re: ShellExecute - Paremeter Filename auf 2K begrenzt

von Michael Mundt » Donnerstag, 28. August 2003



Torsten Kraus berichtete am 28.08.2003 15:03:


Das in diesem Artikel beschriebene Problem ist aber die Beschränkung auf
MAX_PATH (=255) unter NT4/95.
Die Lösung ist ein Workaround, um auch da bis auf eine Länge von 2K zu
kommen.

Eventuelle Alternative: siehe mein letztes Posting von heute 14:11.






Re: ShellExecute - Paremeter Filename auf 2K begrenzt

von Jens Geyer » Freitag, 29. August 2003



>> Die dort beschriebene "Lösung" führt aber zum selben Verhalten.

Wer Lesen kann, ist eben klar im Vorteil.
JensG





Re: ShellExecute - Paremeter Filename auf 2K begrenzt

von torsten.kraus » Freitag, 29. August 2003






Ok ok hab ich nich aufmerksam genug gelesen den Artikel.
Jetzt aber bitte nicht mehr hauen.
Samma wida guad?

nettes wochenende auch noch
Torsten



If you have any questions, you can contact us: admin#mofeel.net     Spam Report