Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi ExtractFilePath bei ActiveX Anwendung (https://www.delphipraxis.net/58050-extractfilepath-bei-activex-anwendung.html)

thomasch 30. Nov 2005 16:15


ExtractFilePath bei ActiveX Anwendung
 
Hallo,
eigentlich dachte ich es mir ganz einfach - bei meinem Programm kann es passieren, dass ich das "eigene" Verzeichnis, sprich das, in dem meine .exe steht, weitergeben muss.
Sofern ich mein Progrgramm als normale .exe starte, liefern
Delphi-Quellcode:
ExtractFilePath(Application.ExeName);
bzw.
ExpandUNCFileName(Application.ExeName);
"normale" Werte, wie

\\server\Programmierung\Formularanwendung\Anwendun g.exe
und
X:\Programmierung\Formularanwendung\

Sobald ich aber die selbe Funktion via ActiveX starte, werden mir an dieser Stelle die Pfade verkürzt dargestellt, wie

X:\PROGRA~1\FO06FC~1\
und
\\server\PROGRA~1\FO06FC~1\Anwendung.exe

Gibt es eine Funktion, die das Gegenteil von ExtractShortPathName macht bzw. hat jemand einen Tipp, wie ich sonst zu meinen Pfaden in der richtigen Schreibweise komme?

Danke schon mal


Thomasch

Luckie 30. Nov 2005 16:17

Re: ExtractFilePath bei ActiveX Anwendung
 
Probier mal MSDN-Library durchsuchenGetLongPathName.

thomasch 30. Nov 2005 16:56

Re: ExtractFilePath bei ActiveX Anwendung
 
Hallo,
danke für den Tipp, nur steht hier, dass die Funktion wohl nicht unter VCL implementiert ist.
Ich habe mir mal kurz GetFullPathName angesehen, scheitere da aber momentan an der Umwandlung der Zeichenkettentypen.

Thomasch

shmia 30. Nov 2005 17:09

Re: ExtractFilePath bei ActiveX Anwendung
 
Application.ExeName greift auf ParamStr(0) zu.
ParamStr(0) greift auf GetModuleFilename (<- Win32-API) zu.
Das Problem ist GetModuleFilename. Zitat:
Code:
Windows Me/98/95: This function retrieves long file names when an application version number is greater than or equal to 4.00 and the long file name is available. Otherwise, it returns only 8.3 format file names.
Es hängt also von der Windows-Version ab.

thomasch 30. Nov 2005 17:23

Re: ExtractFilePath bei ActiveX Anwendung
 
:gruebel: Verstehe ich jetzt nicht - es ist doch letztendlich die selbe Funktion, die ich auf dem selben Rechner ausführe...

thomasch 30. Nov 2005 17:31

Re: ExtractFilePath bei ActiveX Anwendung (gelöst)
 
Hallo,
das Problem hat sich erledigt.
Im Delphi-Forum fand ich eine Lösung, die funktioniert - jetzt muss ich nur noch herausfinden, was genau da gemacht wird :mrgreen:

Viele Grüße

Thomasch

shmia 30. Nov 2005 17:37

Re: ExtractFilePath bei ActiveX Anwendung
 
Zitat:

Zitat von thomasch
:gruebel: Verstehe ich jetzt nicht - es ist doch letztendlich die selbe Funktion, die ich auf dem selben Rechner ausführe...

Tja, Microsoft mal wieder:
http://support.microsoft.com/default...b;en-us;228469
auf "deutsch":
GetModuleFilename baut Mist, wenn es aus einem fremden Caller-Prozess aufgerufen wird.
Muss man GetModuleFileNameEx nehmen.


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