Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi ParamStr(0) mit UNC-Pfad (https://www.delphipraxis.net/194515-paramstr-0-mit-unc-pfad.html)

Dalai 1. Dez 2017 13:06

AW: ParamStr(0) mit UNC-Pfad
 
Wird das Programm vielleicht als Administrator von einem Netzlaufwerk ausgeführt? Falls ja: Netzlaufwerke sind nutzerspezifisch, genauer gesagt an ein Token gebunden. D.h. das vom Nutzer verbundene Netzlaufwerk gibt's beim Administrator nicht.

Grüße
Dalai

Der schöne Günther 1. Dez 2017 13:09

AW: ParamStr(0) mit UNC-Pfad
 
Stimmt, Netzlaufwerk vs. Admin ist eine gute Idee! :thumb:


Wie lang ist der UNC-Pfad? Wenn ich mir den Quellcode in der Delphi-RTL zu ParamStr() anschaue - Da wird die Rückgabe von GetModuleFileName nicht ausgewertet (wenn z.B. der 260 lange Puffer nicht reicht).

https://msdn.microsoft.com/de-de/lib...(v=vs.85).aspx

himitsu 1. Dez 2017 13:58

AW: ParamStr(0) mit UNC-Pfad
 
ParamStr(0) und Delphi-Referenz durchsuchenApplication.ExeName gibt "theoretisch" den ersten "Parameter" im MSDN-Library durchsuchenGetCommandLine wieder,
aber nur theoretisch, denn da dort auch ein relativer Pfad drin stehn kann, weil das genau dem Aufruf z.B. im MSDN-Library durchsuchenShellExecute entspricht,
nimmt Delphi stattdessen den Wert aus GetModuleFileName(0), was dem Pfad der gemappten EXE im Arbeitsspeicher entspricht.


Am, Ende kommt es darauf an, wie Windows den Namen des gemappten Speicherbereichs auflöst
und wie TPath.Combine mit UNC-Pfaden umgeht.

Ich würde erstmal bei TPath nachsehn, da ich mit dem Zeug öfters mal Probleme habe und nicht immer alles so geht, wie man es vermuten könnte. :wall:
* Was gibt ParamStr(0) für einen Wert aus?
* Auch mal GetCommandLine und GetModuleFileName direkt ansehn
* und was macht TPath.Combine

Sherlock 1. Dez 2017 15:09

AW: ParamStr(0) mit UNC-Pfad
 
Danke für die Anregungen, ich werde das beim Kunden ausprobieren. Hoffentlich denke ich daran, Rückmeldung zu geben. Aber im Prinzip scheint Delphi alles richtig zu machen. Vermutlich bin ich das Problem :stupid:

Sherlock


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:25 Uhr.
Seite 2 von 2     12   

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-2025 by Thomas Breitkreuz