(WinAPI) momentan aktuellen Pfad ermittlen

Hier kannst du häufig gestellte Fragen/Antworten und Tutorials lesen und schreiben.
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

(WinAPI) momentan aktuellen Pfad ermittlen

Beitrag von Danilo »

Frage:
Wie kann ich das momentan aktive Verzeichniss ermitteln?

Antwort:
Das kannst Du mit folgender Prozedur machen:

Code: Alles auswählen

Procedure.s GetCurrentDirectory()
  String.s = Space(2048)
  GetCurrentDirectory_(2048, @String)
  ProcedureReturn String
EndProcedure

MessageRequester("",GetCurrentDirectory(),0)

Achtung!

Der obige Code gibt das momentan aktive Verzeichniss zurück -
ist aber nicht dazu geeignet den Pfad des eigenen Programmes
zu ermitteln!
Um dies zu tun: (WinAPI) Pfad + Name des eigenen Programms feststellen

Wenn die erstellte .EXE zum Beispiel 'c:\programme\cool\test.exe'
ist, dann ist der Pfad des eigenen Programmes 'c:\programme\cool\'.

Die obige Procedure liefert aber ein falsches Ergebniss, falls der
User das Programm von der Konsole aus aufruft.

Beispiel:
Der User befindet sich in der Konsole auf c:\ und tippt:
C:\> c:\programme\cool\test.exe
das Ergebniss der obigen Procedure: "c:\" - da dies das aktuelle
Verzeichniss ist.

Ich sage das hier nochmal so deutlich, da viele Leute fälschlicherweise
den obigen Weg benutzen.
Habe ich schon mehrfach gesehen... und ist eindeutig ein Fehler
im Programm - der halt erst auftaucht wenn man es nicht durch
Doppelklick aufruft (Konsole,Batch etc..).
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck